作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UIDocument 加载文件。我现在损坏了一个文件,以查看发生了什么以及我的应用程序的行为方式。它会因 EXC_BAD_ACCESS 崩溃,我现在想知道应该如何处理这种情况。我是否只是希望文件永远不会被损坏?在 UIDocument 之前的日子里,我使用 @try 和 @catch 来表示 NSEXCEPTION,但这不适用于 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;
}
感谢您的任何建议。
最佳答案
EXEC_BAD_ACCESS 不是您捕获的异常,它告诉您正在访问无效的内存地址,从而导致崩溃。 NSZombies 只是一种保持所有应该被释放的对象“活着”的方法(因此不会释放它们占用的内存,这显然不是你在发布版本中想要的),以便告诉你你是哪个“释放”的消息传递。您需要弄清楚为什么您会获得 EXEC_BAD_ACCESS。书籍是保留属性(property)吗?
关于iphone - 加载文件时捕获 EXC_BAD_ACCESS 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106871/
我是一名优秀的程序员,十分优秀!