我正在使用核心数据在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!");
}
}