我在核心数据中有一个Collection
和一个Member
托管对象。
Collection
具有多对多关系members
,可以包含Member
个对象。 Member
个对象应与单个Collection
唯一关联。
我希望能够将此关系中的对象用作管理对象,以用于填充我的表视图控制器,如下所示:
let members : [Member] = someCollection.members
但是,members
属性似乎是NSOrderedSet?
对象,而不是Member
的数组。
在这种程度上,我尝试了以下内容(在互联网上找到,因为我对Swift来说很新),我也试图了解关系字段可能是nil
的情况。它对我不起作用,我不明白为什么。
let members = someCollection.members?.array as! [Member]
if members != nil {
//Do something with the array
else {
//handle the case that there is no entry in the relationship field
}
我收到以下错误:
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
请帮助我理解我做错了什么,如果可能的话,提供一个解决方案。
答案 0 :(得分:2)
由于array
返回非可选项,因此必须使用可选的绑定members
。如果检查成功,您可以安全地强制打开阵列。代码还会检查数组是否为空。
if let members = someCollection.members, members.count > 0 {
let memberArray = members.array as! [Member]
//Do something with the array
else {
//handle the case that there is no entry in the relationship field
}