例如,用户在我的应用程序中打开10个文档
重新启动时,应用程序崩溃重新打开这10个文档中的一个。
在下次启动时,用户将收到一条消息:“上次打开”ApplicationName“时,它意外退出......”。
我需要处理崩溃的文档应用程序,并通知用户,例如,“document10无法重新打开...”,并重新打开9个文档。
请帮忙。我在Cocoa文档中没有找到任何关于此的内容。
对不起我的英语,这是我的第二语言。
答案 0 :(得分:0)
打开文档时,只需将当前文档URL保存为用户默认值,例如LastAttemptedOpenURL
,然后在文档打开后将其设置为null。然后在启动时检查此密钥,如果它不为null,则假定文档崩溃了应用程序。
答案 1 :(得分:0)
您可以完全控制读取NSDocument
类中的数据的代码(例如方法-readFromURL:ofType:error:outError
),因此您需要更多错误检查,并且可能需要处理异常处理这些方法:
- (BOOL)readFromURL:(NSURL *)absoluteURL
ofType:(NSString *)typeName
error:(NSError **)outError {
@try {
// Do read
} @catch(NSException *ex) {
if (outError) {
NSMutableDictionary *errorDetail = [NSMutableDictionary dictionary];
[errorDetail setValue:@"Something bad happened"
forKey:NSLocalizedDescriptionKey];
*outError = [NSError errorWithDomain:@"MyErrorDomain"
code:100
userInfo:errorDetail];
}
return NO;
}
return YES;
}
如果您决定进行异步阅读,情况会更复杂,但仍有可能避免在潜在危险区域发生崩溃。