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;
}
提案をありがとう。