这是我的NSManagedObject
:
@objc(Order)
class Order: NSManagedObject {
@NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set'
}
有人知道为什么它不起作用吗?
OrderItem
文件已创建,但可用于以下声明:@NSManaged var orderItem: OrderItem
最佳答案
仅供参考,如果将来有人针对这个令人讨厌的bug提出这个问题,因为评论中进行了讨论。
是的,Swift中的默认Set
类型是通用的,但是在这种情况下,自定义的非通用Set
类遮盖了该语言的标准库所定义的类。
最好始终为您的 class 选择不同的名称,以避免名称冲突。但是,如果需要,您可以始终使用类的完全限定名称来引用所需的类。
可以在Swift.
命名空间下使用标准语言类,而对于其他类,可以使用模块名称,后跟点和类名称(例如Foundation.NSString)。
关于ios - 无法专门化非通用类型“设置”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38306660/