gpt4 book ai didi

iphone - 加载文件时捕获 EXC_BAD_ACCESS 的方法

转载 作者:行者123 更新时间:2023-12-03 21:18:20 27 4
gpt4 key购买 nike

我正在使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com