0

是否可以删除和读取关系?

我不能在这里发布代码,因为它是一个过程非常复杂的大型项目。

假设我有 tableA <-->> tableB tableB 得到更新(即 tableB 对象将被删除并新的对象(重新)添加)。我检查来自 tableA 的对象是否与 tableB 有关系,我已经在一个带有服务器对象 ID 的数组中拥有它。我现在读取了 tableB 中的数据并读取了关系。关系出现故障,无法访问。添加或删除对象后,我将其保存。我究竟做错了什么?

4

2 回答 2

0

我觉得我在这里误解了您的意图,但我会尝试并根据需要进行修改。首先,所有实体都应该以大写字母开头,所以我将使用TableAandTableB来代表我的实体。并且是 coredata 实体的可怕名称TableATableB它们非常通用,如果您决定在表格之外使用它们,它可能会真正混淆您的代码。特别是因为它是一个“过程非常复杂的庞大项目”。

这本质上是我相信你正在寻求的:

// defined elsewhere
NSManagedObjectContext *managedObjectContext;

// saving the the object that you want to connect to later
TableA *relationshipToA = self.AllTableBs.tableARelationship;

// remove all TableB objects from coredata as you are already doing
// ...
// // //

// insert new TableB objects setting their tableARelationship to relationshipToA
// ...
// //

// single example
TableB *bObject = [NSEntityDescription insertNewObjectForEntityForName:@"TableB" inManagedObjectContext:managedObjectContext];
bObject.tableARelationship = relationshipToA;

// save context

然后,当您尝试访问与 TableA 的对象关系时,它是有效的,反之亦然。

于 2013-07-17T13:37:20.837 回答
0

问题是在将对象插入 tableA 时引起的。关系对象来自不同的上下文。尽管我有合并策略NSMergeByPropertyStoreTrumpMergePolicy,但该对象仍有无法解决的故障。我更改了代码,使两个对象都在相同的上下文中。它解决了这个问题。

于 2013-07-22T12:27:45.953 回答