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

bra*_*ray 3 core-data ios swift

我正在尝试将Core Data中的数组保存为属性.allImages将被分配给[String].我见过有些人说它可以变形.将其保存到核心数据中的正确解决方案是什么? 在此输入图像描述

Mat*_*ewS 9

我如何获得它们的引用,以便我可以将转换更改为 [String]

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

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

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

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

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

在此输入图像描述

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

extension CoreDataArrayObj {
    var images: [String] {
        get {
            return imagesArray as? Array<String> ?? []
        }
        set {
            imagesArray = newValue as NSArray
        }
    }
}
Run Code Online (Sandbox Code Playgroud)