任何人都可以帮助我理解这个崩溃日志。 这种崩溃似乎很随意,我无法在我的测试设备上重现它。 感谢
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
答案 0 :(得分:1)
这只是猜测,因为没有足够的信息来说明你在代码中做了什么。无论如何,从后面跟踪我可以假设你从某个地方接收/获取一些数据,然后你解析收到的数据并尝试在视图中呈现它。传递给视图的对象具有您为标签指定的属性,因此该属性包含NSNull
对象而不是有效的NSString
/ NSAttributed
字符串,应该传递给{ {1}}。因此,当UILabel
向UILabel
发送length
消息时,您会收到崩溃。
因此,您可能会转换为未收到或空白的属性设置NSNull。
如果您设置了视图数据并尝试查看是否有任何属性NSNull
而不是有效字符串,请尝试在此处放置断点。
答案 1 :(得分:0)
在某处您可以将长度方法调用到没有此方法的NSNull对象。
- [NSNull length]:无法识别的选择器发送到实例0x3ad30a60
答案 2 :(得分:0)
由于无效数据正在此drawTextInRect方法内部传递而发生崩溃,只需将断点和检查。如果仍然无效,则在xcode设置中启用NSZombie,然后检查控制台日志。
答案 3 :(得分:0)
您似乎已将标签的文本(似乎来自某些网络服务)设置为[NSNull null]。检查响应并在将文本设置到该标签之前设置断点,并查看实际尝试设置的内容。这可能是某种用作观察者回调的方法。