我的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)
}

10-08 05:24