我有一个已在App Store中发布的应用程序。大约有1%-2%的用户报告该应用程序崩溃了。这不是完全意外的行为,因此我要求提供崩溃日志。这是最后一个异常回溯(实际显示问题的部分):
Last Exception Backtrace:
0 CoreFoundation 0x2ecc5e7e __exceptionPreprocess + 126
1 libobjc.A.dylib 0x390226c2 objc_exception_throw + 34
2 CoreFoundation 0x2ecc97b2 -[NSObject(NSObject) doesNotRecognizeSelector:] + 198
3 CoreFoundation 0x2ecc80aa ___forwarding___ + 702
4 CoreFoundation 0x2ec16dc4 __forwarding_prep_0___ + 20
5 MyAppName 0x000874d0 0x6c000 + 111824
6 UIKit 0x3157c310 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 404
7 UIKit 0x315246c8 -[UITableView _updateVisibleCellsNow:] + 1796
8 UIKit 0x31523eec -[UITableView layoutSubviews] + 180
如您所见,问题出在第2行,NSObject(NSObject)didNotRecognizeSelector。
这告诉我正在发生什么,但显然不是在哪里或发生什么。因此,转到第5行,这是我的应用程序调用的未知方法。由于某种原因,这没有象征性。似乎此方法可能是导致此问题的原因。
每个报告(我现在大约有10个)都与此相同。知道如何看到正确的符号吗?谢谢!
最佳答案
我以前经历过这种崩溃。
在我所有情况下,这都是由于数据类型问题造成的。
例如,尝试在另一种数据类型上调用特定于一种数据类型的方法。
即
试图在字典上调用integerValue方法或试图在字符串上调用length方法,但从本质上讲,这是一个字典,因此与[NSObject didNotRecognizeSelector:]崩溃:
最好检查数据类型并在对象上调用方法以避免此类崩溃。
当我们调用API时,它很容易发生,因为有时API可能返回错误的数据类型或意外的响应。
关于exception - NSObject(NSObject)didNotRecognizeSelector崩溃的应用程序,报告缺少某些符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20478029/