我正在使用 UIDocument 加载文件。我现在已经损坏了一个文件,以查看发生了什么以及我的应用程序的行为方式。它会因 EXC_BAD_ACCESS 而崩溃,我现在想知道应该如何处理这种情况。我只是希望文件永远不会损坏吗?在 UIDocument 之前的日子里,我对 NSEXCEPTION 使用了 @try 和 @catch,但这不适用于 EXC_BAD_ACCESS。这是我会使用 NSZOMBIE 的情况吗?据我了解其他帖子,NSZombie 仅用于调试目的,而不是您应该始终依赖的东西。如果我破坏了我的数据,这是抛出 EXC_BAD_ACCESS 的代码行:
-(BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError {
if (!_books) {
_books = [[NSMutableArray alloc] init];
}
self.books = [NSKeyedUnarchiver unarchiveObjectWithData:contents]; // THIS WILL CRASH IF CONTENTS GOT CORRUPTED
if ([_delegate respondsToSelector:@selector(libraryDocumentUpdated:)]) {
[_delegate libraryDocumentUpdated:self];
}
return YES;
}
感谢您的任何建议。