我的coredata模型中有一对多的关系。对于每个新闻对象,我都有许多详细信息对象。
class Job: NSManagedObject {
@NSManaged var name: String
@NSManaged var count: NSNumber
@NSManaged var id: String
@NSManaged var startDate: NSDate
@NSManaged var finishDate: NSDate
@NSManaged var expected: NSDate
@NSManaged var isFinished: NSNumber
@NSManaged var sender: String
@NSManaged var receiver: String
@NSManaged var details: NSOrderedSet
}
class JobDetail: NSManagedObject {
@NSManaged var message: String
@NSManaged var date: NSDate
@NSManaged var location: String
@NSManaged var status: NSNumber
@NSManaged var parent: Job
}
因此,如何从Job中删除所有详细信息?我当前的方法是删除Job本身,然后重新创建它,这比较慢。
我试图用删除,
context?.deletedObjects(myJob.detail)
但这没用。它说
'(@lvalue NSOrderedSet)-> _与'Set'不相同
最佳答案
似乎您将deleteObject()
与deletedObjects()
混合了。deletedObjects()
是一种获取所有托管对象列表的方法,
已在托管对象上下文中标记为删除。您必须 call 的是deleteObject()
对于每个对象。诸如此类(未经编译器检查):
for detail in myJob.details {
context.deleteObject(detail)
}