rest套件坚持/性能问题与多重MOCs

这是我第一次使用RestKit和多个MOC的新版本,所以这让我有点难住。 我使用RestKit 0.20-pre5,并通过RestKit操作添加托pipe对象以及在整个应用程序中手动添加。

RestKits提供两个MOC来pipe理性能:mainQueue和PersistantStore对象上下文。 从检查RestKits代码中,所有新的被pipe理对象被保存到mainQueue MOC(基于RKObjectManager行433和各种指针地址的检查)。 由RestKit创build的对象得到保持良好(当然在调用保存之后),但是每当我在同一个mainQueue MOC中创build自己的ManagedObjects并保存它时,它们在我重新启动应用程序时不会保留。 (我经常保存有关的MOC)

这就是持久存储的地方。每当我保存持久存储与mainQueue MOC一起时,数据将持续存在。 我想这与RKManagedObjectStore合并更改有关,只要我调用保存在persistantStoreMOC(通过通知)所以…一切都很好?

问题是每当我保存两个上下文都有一个明显的滞后,至less持续1秒(它可以变化到3!)。 这种滞后似乎增加了我创build的NSManagedObjects。 我已经运行仪器,没有内存问题。 我必须错误地使用RestKits核心数据的实现。

对于我使用以下方法保存的logging:

- (void)saveContext { __block BOOL _blockSuccess; __block NSError *_blockError; NSManagedObjectContext *persistantContext = [[[RKObjectManager sharedManager] managedObjectStore] persistentStoreManagedObjectContext]; [globalManagedObjectContext performBlockAndWait:^{ _blockSuccess = [globalManagedObjectContext save:&_blockError]; }]; if (! _blockSuccess) NSLog(@"Failed to save context: %@", _blockError); [persistantContext performBlock:^{ _blockSuccess = [persistantContext save:&_blockError]; if (! _blockSuccess) NSLog(@"Failed to save context: %@", _blockError); }]; } 

每当我们想要保存应用程序的状态时,这是从一个单例对象中调用的。 (globalManagedObjectContext只是一个指向RestKits mainQueueObjectContext的macros。 删除persistantContext保存删除滞后,但当然不会坚持数据。

任何人的帮助(特别是布雷克·沃特斯)将不胜感激!

干杯,

阿隆

我相信答案是使用由RKAdditions类添加到NSManagedObjectContext的saveToPersistentStore:方法。

这是从这里和这里采取的。

使用时还有问题吗?