避免数据丢失是我的应用程序中的一个关键问题。所以我需要尽早保存并经常确保最小的损失,并在出现任何问题时立即通知。
不幸的是,这会导致很多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;
}
现在,我可以更通用的方式收听通知,如果由于某种原因导致保存失败,则会向用户发出警报。
这是一个好方法还是有更好的方法来解决这个问题?
第二个问题是当发生这种情况时实际要做什么。这些天要求用户退出应用程序并重新启动有点令人费解,因为他们需要通过任务切换器关闭应用程序。
答案 0 :(得分:0)
用于通知用户保存错误。但要记住以下几点:
saveError
中的消息。你可能不应该提出它。相反,请查看错误代码和域,并尝试提供更有意义的内容。