【问题标题】:Retrieve array (Transformable) from core data Swift 4从核心数据 Swift 4 中检索数组(可转换)
【发布时间】:2018-01-30 19:31:15
【问题描述】:

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

colorArray 可以是,例如:

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

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

            newEntry.colorArray = colorArray as NSObject

我想从核心数据中检索 colorArray(与保存它的数组格式相同),最好的方法是什么?

【问题讨论】:

  • 它应该和进去的一样。你尝试了什么,出了什么问题?
  • 当我尝试使用以下命令检索 colorArray(数组数组)时:array2 = entry.colorArray as! [NSArray] 我收到消息:“线程 1:致命错误:NSArray 元素无法匹配 Swift 数组元素类型”

标签: arrays core-data swift4 nsfetchrequest


【解决方案1】:

我不确定您为什么要使用 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 中,因此如果您终止应用并重新启动它,数据仍然存在。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    相关资源
    最近更新 更多