我有一个奇怪的堆栈跟踪,我无法象征。我google了一下,显然postUpdatesIfNecessary是Core Telephony Framework的一部分。我无法弄清楚的是这个方法何时被调用。我没有在苹果文档或我的代码中找到它,所以我认为它必须是私有的。有没有人知道这个bug可能来自哪里?
-[__NSCFString postUpdatesIfNecessary]: unrecognized selector sent to instance xxx
0 CoreFoundation 0x327c52a3 <redacted> + 162
1 libobjc.A.dylib 0x3a46a97f objc_exception_throw + 30
2 CoreFoundation 0x327c8e07 <redacted> + 170
3 CoreFoundation 0x327c7531 <redacted> + 392
4 CoreFoundation 0x3271ef68 _CF_forwarding_prep_0 + 24
5 CoreTelephony 0x32e0c89d <redacted> + 32
6 CoreFoundation 0x3279a5df <redacted> + 14
7 CoreFoundation 0x3279a291 <redacted> + 272
8 CoreFoundation 0x32798f01 <redacted> + 1232
9 CoreFoundation 0x3270bebd CFRunLoopRunSpecific + 356
10 CoreFoundation 0x3270bd49 CFRunLoopRunInMode + 104
11 GraphicsServices 0x362cf2eb GSEventRunModal + 74
12 UIKit 0x34621301 UIApplicationMain + 1120
13 MyApp 0x000156a3 main + 110
14 MyApp 0x00015630 start + 40
答案 0 :(得分:0)
错误unrecognized selector sent to instance
意味着,您用来调用方法postUpdatesIfNecessary
的对象是类型转换为NSCFString
及其颠覆NSString
。 postUpdatesIfNecessary
不是NSString
类的选择器(方法)。
要进行验证,请尝试对象的NSLog
类。
就像NSLog(@"Class %@", [object class]);
这里一样,object是postUpdatesIfNecessary
方法的调用者。