我只收到一个用户的30多个crashreports。没有人表现出同样的行为。通常情况下,我可以找出问题是什么,因为总是有一些参考我的代码,但这个没有。
他们都来自类型:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
他们都从这开始(我认为是问题所在:
Last Exception Backtrace:
0 CoreFoundation 0x18c3c2f50 __exceptionPreprocess + 132
1 libobjc.A.dylib 0x198da01fc objc_exception_throw + 60
2 CoreFoundation 0x18c3c2e90 +[NSException raise:format:] + 128
3 CoreFoundation 0x18c2e2bbc -[__NSCFString substringWithRange:] + 144
...
有人知道我的崩溃日志中最后两行的意思吗?
哦,这个应用程序已经老了,还有ARC。
更新#2
所以我设法获取用户帐户的凭据,登录应用程序后直接在此行崩溃:
[[UILabel new] autorelease];
带
Thread 26: EXC_BAD_ACCESS(code=2, address=0x0)
更新#2
重新启动后,应用程序刚刚进入我的tableview,没有任何问题。
答案 0 :(得分:0)
是否包含异常名称或日志的某些部分?您很可能正在尝试获取比字符串更长的子字符串。在计算范围时,您可能需要检查字符串的长度。
如果您甚至没有将UILabel分配给变量或任何东西,为什么要创建它?除了创建一个未使用的UILabel之外,这一行什么也没做。
如果您正在创建短暂的实例,也许UILabel表现不佳。
如果该行确实只是[[UILabel new] autorelease];
,您可以而且应该删除它。