通过 transaction.edit 删除对象的 CoreStore 更新关系不起作用
CoreStore update relationships by deleting objects via transaction.edit does not work
我想通过删除关系中的一些对象来更新我的核心数据对象。
我知道 CoreStore 提供的更新和删除方法很少。我的问题是我可以使用更新功能删除吗?
let john: MyPersonEntity ...
jane.removeFromFriends(john) // Removing john form NSSet
CoreStore.perform(
asynchronous: { (transaction) -> Void in
let jane = transaction.edit(jane)! // Assuming that this is a proxy and context will be saved with no john.
},
completion: { _ in }
)
或者我需要从关系中删除这样的约翰。
let john: MyPersonEntity = jane.getJohnObject() // Returns john object from NSSet.
CoreStore.perform(
asynchronous: { (transaction) -> Void in
transaction.delete(john)
},
completion: { _ in }
)
简而言之,不,因为约翰是实体。约翰需要被删除。如果关系使用默认的无效规则,则无需进一步操作。
我想通过删除关系中的一些对象来更新我的核心数据对象。
我知道 CoreStore 提供的更新和删除方法很少。我的问题是我可以使用更新功能删除吗?
let john: MyPersonEntity ...
jane.removeFromFriends(john) // Removing john form NSSet
CoreStore.perform(
asynchronous: { (transaction) -> Void in
let jane = transaction.edit(jane)! // Assuming that this is a proxy and context will be saved with no john.
},
completion: { _ in }
)
或者我需要从关系中删除这样的约翰。
let john: MyPersonEntity = jane.getJohnObject() // Returns john object from NSSet.
CoreStore.perform(
asynchronous: { (transaction) -> Void in
transaction.delete(john)
},
completion: { _ in }
)
简而言之,不,因为约翰是实体。约翰需要被删除。如果关系使用默认的无效规则,则无需进一步操作。