崩溃日志含义 - [__ NSCFString substringWithRange:]

时间:2014-05-22 08:58:52

标签: objective-c xcode memory-management crash

我只收到一个用户的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,没有任何问题。

1 个答案:

答案 0 :(得分:0)

是否包含异常名称或日志的某些部分?您很可能正在尝试获取比字符串更长的子字符串。在计算范围时,您可能需要检查字符串的长度。

如果您甚至没有将UILabel分配给变量或任何东西,为什么要创建它?除了创建一个未使用的UILabel之外,这一行什么也没做。

如果您正在创建短暂的实例,也许UILabel表现不佳。

如果该行确实只是[[UILabel new] autorelease];,您可以而且应该删除它。