NSManagedObject已更改,但NSManagedObjectContext没有

时间:2014-07-10 13:30:30

标签: ios objective-c core-data magicalrecord

我在我的应用中使用MagicalRecord。我有一个NSManagedObject子类,它有一个名为isFavorite的属性BOOL (NSNumber)

当我设置该属性时,NSManagedObject子类hasChanges方法返回TRUE,但如果我访问NSManagedObject的上下文,hasChanges方法它有时会返回FALSE

这是我正在使用的代码:

self.controlledDevice = [WUDevice MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"deviceIdInHub = %@", deviceId]];
self.controlledDevice.isFavorite = @(![self.controlledDevice.isFavorite boolValue]);
//At this point, [self.controlledDevice hasChanges] always returns true, but [self.controlledDevice.managedObjectContext hasChanges] sometimes returns false, sometimes true.

有没有人知道为什么会发生这种情况?

修改

运行“有时”行为。意思是,如果某些NSManagedObject没有提升对上下文的更改,并且我重新启动应用程序,它可以按预期开始工作。

我认为问题是因为NSManagedObjectContext未被通知其中一个NSManagedObjects的更改,因为在同一个运行中我再次请求相同的对象,我收到它的更改,但它没有将这些更改保存到持久性存储中。

0 个答案:

没有答案