无法理解崩溃报告

时间:2014-07-12 14:23:45

标签: ios objective-c crashlytics

任何人都可以帮助我理解这个崩溃日志。 这种崩溃似乎很随意,我无法在我的测试设备上重现它。 感谢

Thread : Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x2faa6f0b __exceptionPreprocess + 130
1  libobjc.A.dylib                0x3a56dce7 objc_exception_throw + 38
2  CoreFoundation                 0x2faaa837 -[NSObject(NSObject) doesNotRecognizeSelector:] + 202
3  CoreFoundation                 0x2faa9137 ___forwarding___ + 706
4  CoreFoundation                 0x2f9f8098 _CF_forwarding_prep_0 + 24
5  UIKit                          0x322e58b7 -[UILabel _shadow] + 38
6  UIKit                          0x32355557 -[UILabel drawTextInRect:] + 66
7  UIKit                          0x3235550b -[UILabel drawRect:] + 78
8  UIKit                          0x323554a9 -[UIView(CALayerDelegate) drawLayer:inContext:] + 372
9  QuartzCore                     0x31f81189 -[CALayer drawInContext:] + 100
10 QuartzCore                     0x31f6ac5b CABackingStoreUpdate_ + 1858
11 QuartzCore                     0x32046c1d ___ZN2CA5Layer8display_Ev_block_invoke + 52
12 QuartzCore                     0x31f6a50b x_blame_allocations + 82
13 QuartzCore                     0x31f6a1bf CA::Layer::display_() + 1118
14 QuartzCore                     0x31f4dd41 CA::Layer::display_if_needed(CA::Transaction*) + 208
15 QuartzCore                     0x31f4d9d9 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 24
16 QuartzCore                     0x31f4d3e5 CA::Context::commit_transaction(CA::Transaction*) + 228
17 QuartzCore                     0x31f4d1f7 CA::Transaction::commit() + 314
18 QuartzCore                     0x31f46f1d CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 56
19 CoreFoundation                 0x2fa72039 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
20 CoreFoundation                 0x2fa6f9c7 __CFRunLoopDoObservers
21 CoreFoundation                 0x2fa6fd13 __CFRunLoopRun + 738
22 CoreFoundation                 0x2f9da769 CFRunLoopRunSpecific + 524
23 CoreFoundation                 0x2f9da54b CFRunLoopRunInMode + 106
24 GraphicsServices               0x349046d3 GSEventRunModal + 138
25 UIKit                          0x32339891 UIApplicationMain + 1136
26 Oremia Mobile HD               0x00110ee7 main (main.mm:16)
27 libdyld.dylib                  0x3aa6bab7 start + 2

4 个答案:

答案 0 :(得分:1)

这只是猜测,因为没有足够的信息来说明你在代码中做了什么。无论如何,从后面跟踪我可以假设你从某个地方接收/获取一些数据,然后你解析收到的数据并尝试在视图中呈现它。传递给视图的对象具有您为标签指定的属性,因此该属性包含NSNull对象而不是有效的NSString / NSAttributed字符串,应该传递给{ {1}}。因此,当UILabelUILabel发送length消息时,您会收到崩溃。

因此,您可能会转换为未收到或空白的属性设置NSNull。

如果您设置了视图数据并尝试查看是否有任何属性NSNull而不是有效字符串,请尝试在此处放置断点。

答案 1 :(得分:0)

在某处您可以将长度方法调用到没有此方法的NSNull对象。

- [NSNull length]:无法识别的选择器发送到实例0x3ad30a60

答案 2 :(得分:0)

由于无效数据正在此drawTextInRect方法内部传递而发生崩溃,只需将断点和检查。如果仍然无效,则在xcode设置中启用NSZombie,然后检查控制台日志。

答案 3 :(得分:0)

您似乎已将标签的文本(似乎来自某些网络服务)设置为[NSNull null]。检查响应并在将文本设置到该标签之前设置断点,并查看实际尝试设置的内容。这可能是某种用作观察者回调的方法。