【发布时间】:2014-11-10 20:29:43
【问题描述】:
这行代码[self.label setFont:[MyUtilityClass fontWithSize:13.0f]]; 给了我 -[NSNull length]: crash。 label 你们中的许多人都可以猜到是 UILabel。我能想到的唯一合乎逻辑的解释是 UILabel 文本为空。我将在下面发布我的实用程序类,以防万一。
我的实用程序类
+ (UIFont *) fontWithSize : (CGFloat) size
{
UIFont *font = [UIFont fontWithName:@"Roboto-Regular" size:size];
return font;
}
编辑:这是我收到的错误消息。如果您需要,我可以复制和粘贴原始数据。根据 crashlytics,这是用户收到的崩溃。
致命异常:NSInvalidArgumentException
-[NSNull length]: unrecognized selector sent to instance 0x378e23f0
这是崩溃的原始数据。
Thread : Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x297c3c1f __exceptionPreprocess + 126
1 libobjc.A.dylib 0x36f97c8b objc_exception_throw + 38
2 CoreFoundation 0x297c9039 __methodDescriptionForSelector
3 CoreFoundation 0x297c6f57 ___forwarding___ + 714
4 CoreFoundation 0x296f8df8 _CF_forwarding_prep_0 + 24
5 UIKit 0x2cc8b1b5 -[UILabel _setFont:] + 100
6 MyApp 0x00137c29 -[MyViewController initUI] (MyViewController.m:90)
7 MyApp 0x0013765b -[MyViewController viewDidLoad] (MyViewController.m:51)
8 UIKit 0x2cc82f8f -[UIViewController loadViewIfRequired] + 602
9 UIKit 0x2cd2cd95 -[UINavigationController _layoutViewController:] + 32
10 UIKit 0x2cd2ccbd -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 228
11 UIKit 0x2cd2c253 -[UINavigationController _startTransition:fromViewController:toViewController:] + 74
12 UIKit 0x2cd2bf83 -[UINavigationController _startDeferredTransitionIfNeeded:] + 578
13 UIKit 0x2cd2bced -[UINavigationController __viewWillLayoutSubviews] + 44
14 UIKit 0x2cd2bc81 -[UILayoutContainerView layoutSubviews] + 184
15 UIKit 0x2cc804d7 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 514
16 QuartzCore 0x2c6a8a0d -[CALayer layoutSublayers] + 136
17 QuartzCore 0x2c6a43e5 CA::Layer::layout_if_needed(CA::Transaction*) + 360
18 QuartzCore 0x2c6a426d CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 16
19 QuartzCore 0x2c6a3c51 CA::Context::commit_transaction(CA::Transaction*) + 224
20 QuartzCore 0x2c6a3a55 CA::Transaction::commit() + 324
21 UIKit 0x2cc78965 _afterCACommitHandler + 132
22 CoreFoundation 0x2978a3b5 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20
23 CoreFoundation 0x29787a73 __CFRunLoopDoObservers + 278
24 CoreFoundation 0x29787e7b __CFRunLoopRun + 914
25 CoreFoundation 0x296d6211 CFRunLoopRunSpecific + 476
26 CoreFoundation 0x296d6023 CFRunLoopRunInMode + 106
27 GraphicsServices 0x30a8f0a9 GSEventRunModal + 136
28 UIKit 0x2cce21d1 UIApplicationMain + 1440
29 MyApp 0x000a07e7 main (main.m:16)
30 libdyld.dylib 0x37517aaf start + 2
【问题讨论】:
-
NSNull 与 nil 不同。你需要问问自己一个 NSNull 到底是如何进入这个故事的。您是否编写了使用它的代码?你可能不应该;任何事情都很少需要它。
-
将准确完整的错误消息复制/粘贴到问题中。
-
您确定使用了正确的 dSYM 文件来进行符号化吗?
-
此应用程序是否拉入 JSON 数据?您在检查传入数据中的
[NSNull null]值吗? -
您的错误似乎不在您提供的代码中(因为它不会尝试将
length消息发送给任何东西)
标签: ios objective-c iphone xcode crash