无法专门化非泛型类型“Set”
Posted
技术标签:
【中文标题】无法专门化非泛型类型“Set”【英文标题】:Cannot specialize non-generic type 'Set' 【发布时间】:2016-07-11 12:13:24 【问题描述】:这是我的NSManagedObject
:
@objc(Order)
class Order: NSManagedObject
@NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set'
有人知道为什么它不起作用吗?
OrderItem
文件已创建并且适用于以下声明:
@NSManaged var orderItem: OrderItem
【问题讨论】:
使用 Xcode 7.3.1 在操场上运行良好,您使用的是哪个版本的 Swift? 同一个Xcode,如何查看Swift版本? 您的项目中没有其他Set
类型?
哦,是的,你太棒了,我还有另一种类型的Set
。你救了我的命;)
对不起,我的错误:Swift.Set<OrderItem>
:)
【参考方案1】:
仅供参考,如果将来有人会因为这个讨厌的错误来回答这个问题,因为讨论在 cmets 中进行了。
是的,Swift 中默认的 Set
类型是泛型的,但在这种情况下,自定义的非泛型 Set
类隐藏了该语言的标准库定义的类。
最好始终为您的类选择不同的名称,以避免名称冲突。但如果需要,您始终可以使用类的完全限定名称来引用您想要的类。
标准语言类在 Swift.
命名空间下可用,而对于其他类,您可以使用模块名称后跟一个点和类的名称(例如 Foundation.NSString)。
【讨论】:
以上是关于无法专门化非泛型类型“Set”的主要内容,如果未能解决你的问题,请参考以下文章