NSObject doesNotRecogniseSelector崩溃程序

时间:2010-07-15 17:23:10

标签: iphone objective-c cocoa-touch

我正在学习如何开发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值时,会发生这种情况。请问您能告诉我问题是什么以及如何解决这个问题?

万分感谢。

2 个答案:

答案 0 :(得分:6)

嗯,是的。 doesNotRecognizeSelector:的默认实现应该杀死您的程序。那不是问题。问题是您正在向对象发送无法响应的消息。在这种情况下,看起来Controller无法响应消息refreshView

答案 1 :(得分:3)

抛出异常并让程序在未捕获的异常上崩溃。该例外包含您需要的所有信息。您应该看到一个标识方法调用目标的日志行以及尝试调用的方法(不存在)。