ファイルをロードするのにUIDocumentを使用しています。私は今何が起こって、どのように私のアプリが動作するかを見るためにファイルを破損している。それはEXC_BAD_ACCESSでクラッシュし、私はこのようなシナリオをどのように処理すべきか考えていました。私はちょうど希望ファイルが壊れることはありませんか? UIDocument前の日では、NSEXCEPTIONに@tryと@catchを使用しましたが、EXC_BAD_ACCESSでは動作しません。これはNSZOMBIEを使用するケースですか?私が他の記事を理解する限り、NSZombieはデバッグ目的にのみ使用され、常に頼りにするべきではありません。データを破損した場合、EXC_BAD_ACCESSをスローするコード行は次のとおりです。ファイルをロードするときに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;
}
ありがとうございます。
私は同じ問題を抱えています。 loadFromContentsが無効なコンテンツオブジェクトを渡しているため、アーカイブ解除がクラッシュします。明らかに、私には、バグはiCloudにあり、決して無効なオブジェクトを渡すべきではありません。 – pstoppani