파일을로드하는 데 UIDocument를 사용하고 있습니다. 나는 지금 어떤 일이 일어나고 내 앱이 어떻게 작동하는지보기 위해 파일을 손상시켰다. 그것은 EXC_BAD_ACCESS와 충돌 할 것이고 나는 지금 어떻게 그런 시나리오를 처리해야하는지 궁금해하고있다. 파일이 손상되지 않겠습니까? pre-UIDocument 시절에는 NSEXCEPTION에 @try와 @catch를 사용했지만 EXC_BAD_ACCESS에서는 작동하지 않습니다. NSZOMBIE를 사용하는 경우입니까? 다른 게시물을 이해하는 한, NSZombie는 디버깅 용도로만 사용되며 항상 의존해야하는 것은 아닙니다. 다음은 데이터를 손상시킬 경우 EXC_BAD_ACCESS를 던지는 코드 행입니다.파일을로드 할 때 EXC_BAD_ACCESS를 catch하는 방법
-(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