快速和/或保存在iOS上保存NSManagedObjectContext的方法

时间:2013-02-24 17:32:50

标签: ios xcode core-data save nsmanagedobjectcontext

我正在创建一个用于显示Cora Data对象的应用程序。应用程序不应创建或删除实体,但我想让用户有机会将实体添加到他们的收藏夹中。为此,我添加了一个布尔“isFavorite”属性。当用户添加实体时,我会像这样更新它:

[_currentObject setValue:[NSNumber numberWithBool:YES] forKey:@"isFavorite"];
[_managedObjectContext refreshObject:_currentObject mergeChanges:YES];

当应用关闭时,我会保存上下文:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
     [self saveContext];
}

- (void)saveContext
{
    NSError *error = nil;
    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;

    if (managedObjectContext != nil) {
        if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
             NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        } 
    }
    NSLog(@"save done...");
}

这项工作很好,但问题是,完成保存大约需要10秒钟。当用户按下主页按钮然后关闭应用程序(双击主页按钮)时,上下文将不会完全保存。

是否有更快(或保存)的方法来保存上下文?我不需要再次保存孔文件,只需要保存已更改的对象...

我的文件是二进制文件,大小约为5 MB,随着更多数据的添加,它会增加。

0 个答案:

没有答案