我正在学习如何开发iPhone应用程序,我遇到了一个有趣的问题。在我的视图控制器类中,我有一个int
变量,我@synthesize
并重载了setter(尽管如此),这是不需要的。当我运行应用程序时,我得到了回溯:
***第一次投掷筹码: (
0 CoreFoundation 0x024e0919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x0262e5de objc_exception_throw + 47
2 CoreFoundation 0x024e242b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x02452116 ___forwarding___ + 966
4 CoreFoundation 0x02451cd2 _CF_forwarding_prep_0 + 50
5 Awesome App 0x00001ff1 -[Controller refreshView] + 69
6 Awesome App 0x00002180 -[Controller awakeFromNib] + 133
7 UIKit 0x004a3924 -[UINib instantiateWithOwner:options:] + 1556
8 UIKit 0x004a54b5 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
9 UIKit 0x002b49bb -[UIApplication _loadMainNibFile] + 172
10 UIKit 0x002b590d -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 198
11 UIKit 0x002bf452 -[UIApplication handleEvent:withNewEvent:] + 1958
12 UIKit 0x002b8074 -[UIApplication sendEvent:] + 71
13 UIKit 0x002bcac4 _UIApplicationHandleEvent + 7495
14 GraphicsServices 0x02d46afa PurpleEventCallback + 1578
15 CoreFoundation 0x024c1dc4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
16 CoreFoundation 0x02422737 __CFRunLoopDoSource1 + 215
17 CoreFoundation 0x0241f9c3 __CFRunLoopRun + 979
18 CoreFoundation 0x0241f280 CFRunLoopRunSpecific + 208
19 CoreFoundation 0x0241f1a1 CFRunLoopRunInMode + 97
20 UIKit 0x002b5226 -[UIApplication _run] + 625
21 UIKit 0x002c0b58 UIApplicationMain + 1160
22 Awesome App 0x00001e4c main + 102
23 Awesome App 0x00001ddd start + 53
) 抛出'NSException'实例后终止调用 程序收到信号:“SIGABRT”。
我的注意力被吸引到第2行。当我尝试为我的班级iVar分配int
值时,会发生这种情况。请问您能告诉我问题是什么以及如何解决这个问题?
万分感谢。
答案 0 :(得分:6)
doesNotRecognizeSelector:
的默认实现应该杀死您的程序。那不是问题。问题是您正在向对象发送无法响应的消息。在这种情况下,看起来Controller无法响应消息refreshView
。
答案 1 :(得分:3)
抛出异常并让程序在未捕获的异常上崩溃。该例外包含您需要的所有信息。您应该看到一个标识方法调用目标的日志行以及尝试调用的方法(不存在)。