核心数据到多个关系NSOrderedSet包含检查失败

时间:2013-12-21 04:25:52

标签: ios objective-c core-data restkit

我有一个核心数据模型设置如下:

Parent <-->> Child。这个parent.children关系是有序的。

  1. 我创建了一个新的Parent对象(没有Child个对象)并将其上传到Web服务器。

  2. 在后台进行上传时,我创建了一个新的Child对象,其中child.parent设置为步骤1中的父对象。然后我设置了子对象作为视图控制器中的属性。

  3. 步骤1的上传完成,我在managedObjectContext上调用save

  4. 在视图控制器中,我再次在managedObjectContext上调用save

  5. 接下来,当我在视图控制器中执行[self.child.parent.children containsObject:self.child]时,我得到false

  6. 在视图控制器中,我检查了objectIDself.child的{​​{1}},它们都是相同的。

    这里只使用了一个[(Child *)self.child.parent.children objectAtIndex:0]

    所以我不确定是什么原因导致NSOrderedSet包含设置返回false,甚至我应该记录哪些其他信息来调试此问题。

    编辑1:提供一些代码

    保存是通过NSManagedObjectContext的{​​{1}}类别完成的。 要保存的代码位于RestKit,其中包含以下链接: https://github.com/RestKit/RestKit/blob/development/Code/CoreData/NSManagedObjectContext%2BRKAdditions.m#L39 此方法在内部调用NSManagedObjectContext+RKAdditions,因此从任何线程调用此方法都可以。

    上传也是通过saveToPersistentStore完成的,在完成处理程序中,performBlockAndWait对象的一个​​属性会更新,然后调用RestKit

    viewController有一个名为parent的属性。初始化视图控制器时,该属性将传递给init方法,然后设置

    [parent.managedObjectContext saveToPersistentStore]

    稍后点击按钮,再次在managedObjectContext上调用child。 完成后,我会尝试- (id) initWithChild:(Child *)child { if (self = [super init]) { self.child = child; } return self; }

0 个答案:

没有答案