NSObject doesNotRecogniseSelector crashes program

2

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.

iphone
objective-c
cocoa-touch
asked on Stack Overflow Jul 15, 2010 by iGbanam • edited Jul 15, 2010 by kennytm

2 Answers

6

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.

answered on Stack Overflow Jul 15, 2010 by Chuck
3

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.

answered on Stack Overflow Jul 15, 2010 by bbum

User contributions licensed under CC BY-SA 3.0