不能专门化非泛型类型' Set'

时间:2016-07-11 12:13:24

标签: ios swift nsmanagedobject

这是我的NSManagedObject

@objc(Order)
class Order: NSManagedObject {

    @NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set'
}

任何人都知道它为什么不起作用?

OrderItem文件已创建,但可用于以下声明:

@NSManaged var orderItem: OrderItem

1 个答案:

答案 0 :(得分:2)

仅仅是为了参考,如果有人在将来为这个讨厌的错误提出这个问题,因为讨论在评论中继续进行。

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

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

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