【问题标题】:App crashing with error: -[NSNull length]: unrecognized selector sent to instance应用程序因错误而崩溃:-[NSNull length]: unrecognized selector sent to instance
【发布时间】: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


【解决方案1】:

您很可能试图获取您认为是 NSString 但实际上是 NSNull 的长度。

【讨论】:

    【解决方案2】:

    我的代码遇到了这个问题,并通过使用系统字体解决了这个问题。情况是它无法将我指定的字体加载到代码中。如果有帮助,请尝试并告诉我。

    快乐编码,干杯, 拉特内什瓦尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多