【发布时间】:2018-02-20 09:17:45
【问题描述】:
避免数据丢失是我的应用程序中的一个关键问题。因此,我需要尽早并经常进行保存,以确保将损失降至最低,并在出现任何问题时立即通知。
不幸的是,这导致了很多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;
}
现在我可以以更通用的方式收听通知,并在保存由于某种原因失败时向用户发出警报。
这是一个好方法还是有更好的方法来处理这个问题?
次要问题是当这种情况发生时实际该怎么做。现在要求用户退出应用程序并重新启动有点令人费解,因为他们需要通过任务切换器关闭应用程序。
【问题讨论】:
标签: ios objective-c core-data error-handling