[英]How to deal with CoreData save errors?
避免数据丢失是我应用程序中的关键问题。 因此,我需要尽早保存,并经常确保在发生任何问题时将损失降到最低并立即通知。
不幸的是,这会导致很多if (![context save:&error]) {
处理整个地方。 为了以更集中的方式进行清理,我想使用这样的方法来实现NSManagedObjectContext类别:
- (BOOL)saveNotify:(NSError **)error
{
NSError *saveError;
if (![self save:&saveError]) {
NSDictionary *userInfo = @{@"error" : saveError};
[NSNotificationCenter.defaultCenter postNotificationName:NSManagedObjectContextSaveErrorNotification object:self userInfo:userInfo];
if (error != NULL) *error = saveError;
return NO;
}
return YES;
}
现在,我可以以更一般的方式收听通知,如果由于某种原因保存失败,则会向用户发出警报。
这是一个好方法还是有更好的方法来解决呢?
第二个问题是发生这种情况时实际要做什么。 由于用户需要通过任务切换器关闭应用程序,如今要求用户退出应用程序并重新启动有点麻烦。
这样可以通知用户保存错误。 但是有几件事要牢记:
saveError
的消息。 您可能不应该提出。 相反,请查看错误代码和域,并尝试提出更有意义的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.