如何将核心数据关系设置为 NSNull()?

how to set core data relationship to NSNull()?

我有一个简单的 NSMO,它有一个关系字段。有时我需要删除关系但保留对象。这是对象,它与 Person 具有一对一关系(person 与 LineUp 具有一对多关系):

@objc (LineUp)
class LineUp: NSManagedObject {
    @NSManaged var roleType: String
    @NSManaged var roleName: String
    @NSManaged var person: Person
}

然后当我尝试这样做时:

for role in arrayOfRoles as [LineUp] {
    if someCondition == true {
        role.person = NSNull()
        moc.save(&error)
    }
}

我刚刚得到 'NSNull is not convertible to Person'。我的解决方法很明显而且代价高昂:我正在删除并重新创建该对象。有什么建议吗?

更新post回答:我试图从错误的一方将我的关系设置为零。 IE 对于 personArray 中的人 { 在 person.roles { 如果 someCondition == true { role.person = 无 } } }

如果我只获取角色的对象 ID,那么从那里开始就可以了。但当我处于关系的 'many' 一方时就不会了。没什么大不了的,抱歉问了这么愚蠢的问题。

将其设置为 nil 表示关系的另一端没有任何内容。当您想在 Objective-C 集合中表示 nil 时使用 NSNull,并且或多或少被可选值废弃。