当您创建托管对象关系(即一对多),然后创建NSManagedObject子类时,您可以将该关系编码为:
@NSManaged var dogs: NSSet
但我发现你可以写:
@NSManaged var dogs: Set<Dog>
在我看来,它更方便,因为你有一个打字的Set,并且在Swift中的转换非常冗长。
编辑:
实际上,我发现您可以使用套装的insert
和remove
方法,这样就更容易了。
我从一些Foundation类到Swift类(即NSArray
到Array
和NSSet
到Set
)了解Swift自动bridging。
但是我还没有找到使用Swift类型集来实现docs或任何其他教程中的Core Data Managed对象子类,我想知道为什么。
我正在使用Xcode 7.2和Swift 2,它在我的项目中运行良好。它也适用于其他人吗?一些Apple doc在某处?或者由于某种原因我不知道这是一个坏主意吗?
答案 0 :(得分:1)
是的,就我所知,这是许多开发人员的常见做法。
实际上,生成的NSManagedObject
子类在生成的类型中并不完美。例如,原语仍有问题,NSNumber
有时会成功连接到Bool
,有时不会。我经常需要修改可选状态。
如果您离开预设NSSet
,您仍然可以转换为Set<Type>
这是我在改变生成的子类之前所做的事情。键入集的多个属性。