不能专门化非泛型类型“Set”

Bar*_*zyk 3 nsmanagedobject ios swift

这是我的NSManagedObject

@objc(Order)
class Order: NSManagedObject {

    @NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set'
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么它不起作用?

OrderItem 文件已创建并适用于以下声明:

@NSManaged var orderItem: OrderItem
Run Code Online (Sandbox Code Playgroud)

Umb*_*ndi 5

仅供参考,如果将来有人应该针对这个讨厌的错误来回答这个问题,因为讨论仍在评论中进行。

是的,SetSwift 中的默认类型是泛型,但在这种情况下,自定义非泛型Set类隐藏了语言标准库定义的类。

最好总是为您的类选择不同的名称,以避免名称冲突。但如果需要,您始终可以使用类的完全限定名称来引用您想要的类。

标准语言类在Swift.命名空间下可用,而对于其他类,您可以使用模块名称后跟一个点和类的名称(例如 Foundation.NSString)。