我正面临这个例外,我无法弄清楚这个问题。
我尝试添加异常断点和符号断点,但它没有显示任何更多有用的数据。它在main.h上崩溃,在回溯中没有任何内容
这是例外:
2016-10-20 17:32:58.615 <AppName>[15655:3398242] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull hasColorGlyphsInRange:attributes:]: unrecognized selector sent to instance 0x10b1acfb0'
*** First throw call stack:
(
0 CoreFoundation 0x000000010aeef34b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010f90221e objc_exception_throw + 48
2 CoreFoundation 0x000000010af5ef34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x000000010ae74c15 ___forwarding___ + 1013
4 CoreFoundation 0x000000010ae74798 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010d9c66c1 -[UILabel _determineContentsFormat] + 1475
6 UIKit 0x000000010d9c6f9d -[UILabel _evaluateContentsFormat] + 33
7 UIKit 0x000000010d801923 -[UIView(CALayerDelegate) layerWillDraw:] + 65
8 QuartzCore 0x000000010d2c0b26 _ZN2CA5Layer8display_Ev + 146
9 QuartzCore 0x000000010d2b5596 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 294
10 QuartzCore 0x000000010d2b5629 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 35
11 QuartzCore 0x000000010d24362c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280
12 QuartzCore 0x000000010d270713 _ZN2CA11Transaction6commitEv + 475
13 QuartzCore 0x000000010d271083 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113
14 CoreFoundation 0x000000010ae93e17 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
15 CoreFoundation 0x000000010ae93d87 __CFRunLoopDoObservers + 391
16 CoreFoundation 0x000000010ae78b9e __CFRunLoopRun + 1198
17 CoreFoundation 0x000000010ae78494 CFRunLoopRunSpecific + 420
18 GraphicsServices 0x0000000111c6fa6f GSEventRunModal + 161
19 UIKit 0x000000010d73df34 UIApplicationMain + 159
20 AppName 0x0000000109998c73 main + 1187
21 libdyld.dylib 0x00000001103f368d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
答案 0 :(得分:1)
&#39; - [NSNull hasColorGlyphsInRange:attributes:]:无法识别的选择器发送到实例0x10b1acfb0&#39;
这意味着您已经使用了NSNull对象。从调用堆栈,可能是NSNull用作NSString或NSAttributedString。因此,您需要在使用前进行检查。
if (str != [NSNull null]) {
label.text = str
}
答案 1 :(得分:0)
services.AddSingleton<IAuthorizationHandler, TestHandler>();
?
尝试
hasColorGlyphsInRange
答案 2 :(得分:0)
您需要能够阅读并理解错误消息。
您被告知有人或某事试图将消息hasColorGlyphsInRange发送到NSNull的实例。即使很难接受,因为这不应该发生,那就是错误信息以及发生了什么。
所以你已经把一个NSNull实例放在了你不应该的地方。 hasColorGlyphsInRange似乎没有记录在任何地方,因此它是iOS或macOS内部的东西。但它看起来像文本的东西,并且调用堆栈上有UILabel方法。并且在调用堆栈上有一个layerWillDraw:所以它试图绘制一个UILabel。
UILabels不会立即重绘,但是当系统决定重绘任何内容时。所以最有可能的是你已经将UILabel的文本设置为NSNull对象。
NSNull对象来自哪里?投注是您正在处理JSON,并且您假设您正在获取字符串并且不检查空对象,这就是您将某些UILabel的文本设置为NSNull实例的原因。