从核心数据中检索数组(可转换)Swift 4

Retrieve array (Transformable) from core data Swift 4

我有一个名为 "Item" 的实体,其属性名为 "colorArray",类型为 "Transformable"。

colorArray 可以是,例如:

[["Red", "Blue", "Green"], ["Red"], ["Blue", "Green"], ["Green"], ["Blue"], ["Blue", "Green", "Red"]]

然后我使用以下方法将 colorArray 保存到核心数据:

            newEntry.colorArray = colorArray as NSObject

我想从核心数据中检索 colorArray(以与保存它相同的数组格式),执行此操作的最佳方法是什么?

我不确定您为什么要使用 as NSObjectas! [NSArray],因为对于您给出的示例来说,这两者都不是必需的或有用的。

使用 colorArray 属性配置如下:

可以使用

将问题中的数组分配给属性
myObject.colorArray = [["Red", "Blue", "Green"], ["Red"], ["Blue", "Green"], ["Green"], ["Blue"], ["Blue", "Green", "Red"]]

同样可以使用

检索值
if let colorArray = myObject.colorArray {
    print("Color array: \(colorArray)")
    colorArray.forEach { (entry) in
        print("Array entry: \(entry)")
    }
}

该值保留在 Core Data 中,因此如果您终止应用程序并重新启动它,数据仍然存在。

您可能会通过使用这些类型转换使它过于复杂,并因此导致错误。