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

时间:2017-03-10 19:49:06

标签: ios swift core-data

我试图将Core Data中的数组保存为属性。 allImages将被分配给[String]。我见过一些人说让它变形。将此保存到核心数据中的正确解决方案是什么?         enter image description here

1 个答案:

答案 0 :(得分:9)

  

如何引用它们以便我可以将可转换为[String]

这实际上是一个好点,因为answer I linked too假设您正在创建自己的NSManagedObject子类。

值得强调的是,自己创建/维护自己的NSManagedObject子类是一个非常有效的选项,有些人甚至可能会建议它是一个首选选项,因为如果你的项目在于,你可以更好地查看任何更改。存储库。

然而 - 最后几个Core Data项目我一直在使用Xcode来创建子类,这意味着你需要在扩展中创建另一个属性。

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

首先,在模型文件中,我将属性命名为它所代表的对象类型,在本例中为数组:

enter image description here

然后创建一个扩展并添加一个在NSArray和Swift Array类型之间强制转换的计算属性:

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