通过 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 }
)

简而言之,不,因为约翰是实体。约翰需要被删除。如果关系使用默认的无效规则,则无需进一步操作。