如何将核心数据关系设置为 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
,并且或多或少被可选值废弃。
我有一个简单的 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
,并且或多或少被可选值废弃。