Igbanam
Igbanam

Reputation: 6082

NSObject doesNotRecogniseSelector crashes program

I am learning how to develop iPhone applications and I ran into an interesting problem. In my view controller class, I have a an int variable that I @synthesize and overload the setter (though) this is not needed. When I run the application, I get this trace back:

*** Call stack at first throw: (

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

) terminate called after throwing an instance of 'NSException' Program received signal: “SIGABRT”.

My attention got drawn to line 2. This happens when I try to assign an int value to my class iVar. Please can you tell me what the problem is and how to fix this?

Thanks a million.

Upvotes: 2

Views: 3048

Answers (2)

bbum
bbum

Reputation: 162712

Let the exception be thrown and let the program crash on the uncaught exception. The exception contains all the information you need. You should see a log line that identifies the target of the method invocation and what method (that doesn't exist) was trying to be invoked.

Upvotes: 3

Chuck
Chuck

Reputation: 237040

Well, yeah. The default implementation of doesNotRecognizeSelector: is supposed to kill your program. That's not the problem. The problem is that you're sending an object a message it can't respond to. In this case, it looks like Controller can't respond to the message refreshView.

Upvotes: 6

Related Questions