coredata获取数组的元素

时间:2018-07-22 17:15:37

标签: ios arrays swift core-data

我在应用程序中使用CoreData,我有两个实体:BuildingPhone,它们使用一对多关系连接。

我需要将number实体的Phone属性设置为textView.text中的table view cell字段。 我使用以下代码来实现此目的(出于演示目的,已对其进行了简化):

let a = b.value(forKeyPath: "buildingPhones.number")

现在我们可以从下面的输出中看到a变量如何更改两个电话号码的值: Printing description of a: ▿ Optional<Any> ▿ some : 2 elements - 0 : +7 7162 40 15 69 - 1 : +7 7162 25 75 39

如何访问此数组中的第一个数字-+7 7162 40 15 69

P.S。我现在非常绝望,因为我已经尝试了所有找到的方法,但是仍然无法做到这一点。我尝试使用object(at: 0)方法和许多其他方法访问数组中的元素。此外,当我尝试将a转换为任何类型(StringArrayNSArrayNSMutableArray时,它总是返回nil

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您必须将value(forKeyPath的结果向下转换为实际类型[String]

获取第一个号码的保存方式是

if let a = b.value(forKeyPath: "buildingPhones.number") as? [String],
   let firstNumber = a.first {
   print(firstNumber)
}

请注意,one-to-many关系的类型是(无序)Set。不能保证数组的顺序总是相同的。