这是我的NSManagedObject
:
@objc(Order)
class Order: NSManagedObject {
@NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set'
}
任何人都知道它为什么不起作用?
OrderItem
文件已创建,但可用于以下声明:
@NSManaged var orderItem: OrderItem
答案 0 :(得分:2)
仅仅是为了参考,如果有人在将来为这个讨厌的错误提出这个问题,因为讨论在评论中继续进行。
是的,Swift中的默认Set
类型是通用的,但在这种情况下,自定义的非通用Set
类隐藏了由该语言的标准库定义的类。
最好总是为您的类选择不同的名称,以避免名称冲突。但是如果需要,您可以始终使用类的完全限定名称来引用您想要的类。
标准语言类在Swift.
命名空间下可用,而对于其他类,您可以使用模块的名称,后跟一个点和类的名称(例如Foundation.NSString)。