我的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'
不同
答案 0 :(得分:0)
您似乎将deleteObject()
与deletedObjects()
混为一谈。
deletedObjects()
是一种获取所有托管对象列表的方法
已在管理对象上下文中标记为删除。你需要调用的是deleteObject()
为每个对象。像(不是编译器检查)的东西:
for detail in myJob.details {
context.deleteObject(detail)
}