在CoreData中保存NSManagedObjectContext的性能问题

时间:2017-08-03 20:42:58

标签: objective-c cocoa core-data

我正在使用核心数据在macOS上开发一些文本编辑器应用程序,用于保存内容。

我遇到一个性能问题,当我点击回车键时打字性能会降低。因为只要用户点击键盘输入键,就会保存文本内容(Save ManagedObjectContext)。

有没有办法在后台保存MOC或部分保存MOC,以便我可以通过回车键避免性能问题?

任何建议或可能的解决方案将不胜感激。以下是与此相关的一些代码。 “ self.post ”是MOC中的一个对象,只要“ [[CoreDataHelper sharedInstance] saveContext] ”调用它就会被保存。

- (void)contentDidChangeCallback:(id)object {
    self.post.content = self.contents;

    [[CoreDataHelper sharedInstance] saveContext];
}

#pragma mark - Saving
- (void)saveContext {
    NSLog(@"[%@] '%@'",self.class,NSStringFromSelector(_cmd));

    if ([_context hasChanges]) {
        NSError *error = nil;

        if ([_context save:&error]) {
            NSLog(@"_context SAVED changes to persistent store");
        }
        else {
            NSLog(@"Failed to save _context: %@",error);
        }
    }
    else {
        NSLog(@"SKIPPED _context save, there are no changes!");
    }
}

0 个答案:

没有答案