Coredata删除和阅读关系

时间:2013-07-17 12:55:09

标签: iphone objective-c core-data

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

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

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

2 个答案:

答案 0 :(得分:0)

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

这实质上是我相信你所寻求的:

// 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的对象关系时,它是有效的,反之亦然。

答案 1 :(得分:0)

当对象插入tableA时导致问题。关系对象来自不同的上下文。虽然我有合并政策NSMergeByPropertyStoreTrumpMergePolicy,但对象仍有无法解决的问题。我更改了代码,以便两个对象都在相同的上下文中。它解决了这个问题。