用核心数据保存数组Swift 3?

我试图在Core Data中保存一个数组作为属性。 allImages将被分配给[String]。 我见过一些人说可以变形 将这些数据保存到核心数据的正确解决scheme是什么? 在这里输入图像说明

我怎么得到他们的参考,所以我可以改变可转换为[String]

这实际上是一个好点,因为我链接的答案也假设你正在创build自己的NSManagedObject子类。

值得强调的是,自己创build/维护你自己的NSManagedObject子类是一个完全有效的select,有些人甚至可能会build议这是一个首选方法,因为如果你的项目在一个仓库中,你可以更好地了解任何变化。

然而 – 最后几个核心数据项目我一直在使用Xcode来创build子类,这意味着你需要在扩展中创build另一个属性。

以下是我一直在使用的一般方法:

首先,在您的模型文件中,我使用它所表示的对象的types来命名属性,在这种情况下是一个数组:

在这里输入图像说明

然后创build一个扩展,并添加一个在NSArray和Swift Arraytypes之间转换的计算属性:

 extension CoreDataArrayObj { var images: [String] { get { return imagesArray as? Array<String> ?? [] } set { imagesArray = newValue as NSArray } } }