numberOfRowsInSection - unrecognized selector sent to instance issue
Solution 1
The class instance, which you have assign to DataSource
doesn't implement the UITableViewDataSource
functions.
@interface MyClassController :UIViewController <UITableViewDelegate,UITableViewDataSource>
try like below.
myTableView.dataSource = self;
*Note self
is the instance of MyClassController
implement the method of UITableViewDataSource
protocol.
Solution 2
It's highly likely that you intended your application delegate to be your data source but accidentally made the File's Owner
, which is the UIApplication
object, the datasource. This is the reason the application object seems to be getting the data requests.
Solution 3
Check your data source and delegate outlet are properly connected to your viewController... This worked for me..
Solution 4
The problem is most likely caused by assigning the File's Owner as the Table View's delegate and data source. As others have mentioned, the File's Owner is a UIApplication object which does not conform to the UITableViewDelegate and UITableViewDataSource protocols that the UITableView must conform to. If you are using IB
, simply connect the Table View
to it's respected View Controller
for both the delegate and data source instead of the File's Owner.
Related videos on Youtube
Brian H.
Updated on May 29, 2020Comments
-
Brian H. almost 4 years
I keep getting this issue while trying to run my application. It compiles successfully:
GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Thu Jan 27 08:30:35 UTC 2011) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-apple-darwin".Attaching to process 1833. 2011-06-01 10:20:07.576 MicroBetas[1833:207] -[UIApplication tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x4d0f9e0 2011-06-01 10:20:07.580 MicroBetas[1833:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIApplication tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x4d0f9e0' *** Call stack at first throw: ( 0 CoreFoundation 0x00ecbbe9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x00cc05c2 objc_exception_throw + 47 2 CoreFoundation 0x00ecd6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187 3 CoreFoundation 0x00e3d366 ___forwarding___ + 966 4 CoreFoundation 0x00e3cf22 _CF_forwarding_prep_0 + 50 5 UIKit 0x001cff16 -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 1834 6 UIKit 0x001cd9e7 -[UITableViewRowData numberOfRows] + 108 7 UIKit 0x000848c2 -[UITableView noteNumberOfRowsChanged] + 132 8 UIKit 0x000912b8 -[UITableView reloadData] + 773 9 UIKit 0x0008e470 -[UITableView layoutSubviews] + 42 10 QuartzCore 0x01612451 -[CALayer layoutSublayers] + 181 11 QuartzCore 0x0161217c CALayerLayoutIfNeeded + 220 12 QuartzCore 0x0160b37c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310 13 QuartzCore 0x0160b0d0 _ZN2CA11Transaction6commitEv + 292 14 UIKit 0x0001a19f -[UIApplication _reportAppLaunchFinished] + 39 15 UIKit 0x0001a659 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 690 16 UIKit 0x00024db2 -[UIApplication handleEvent:withNewEvent:] + 1533 17 UIKit 0x0001d202 -[UIApplication sendEvent:] + 71 18 UIKit 0x00022732 _UIApplicationHandleEvent + 7576 19 GraphicsServices 0x01021a36 PurpleEventCallback + 1550 20 CoreFoundation 0x00ead064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52 21 CoreFoundation 0x00e0d6f7 __CFRunLoopDoSource1 + 215 22 CoreFoundation 0x00e0a983 __CFRunLoopRun + 979 23 CoreFoundation 0x00e0a240 CFRunLoopRunSpecific + 208 24 CoreFoundation 0x00e0a161 CFRunLoopRunInMode + 97 25 UIKit 0x00019fa8 -[UIApplication _run] + 636 26 UIKit 0x0002642e UIApplicationMain + 1160 27 MicroBetas 0x00002299 main + 121 28 MicroBetas 0x00002215 start + 53 ) terminate called after throwing an instance of 'NSException' sharedlibrary apply-load-rules all Current language: auto; currently objective-c (gdb)
Code it appears to be getting stuck at:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.colorNames count]; }
-
Brian H. almost 13 yearsI did, however I'm rather new at this and was following this tutorial, which says to do so, so I'm confused as to how to continue. link
-
Deepak Danduprolu almost 13 yearsSelect the
File's Owner
and check theIdentity Inspector
on the right. What's the class name there? -
Brian H. almost 13 yearsThe class name is UIApplication.
-
Deepak Danduprolu almost 13 yearsI think you selected a
Window-based Application
rather than aView-based Application
while creating the project. You can consider starting over. -
Brian H. almost 13 yearsAlright, thank you very much for all your help. It's much appreciated.
-
AdamFortuna over 11 yearsThis worked for me. I was setting the delegate/datasource to the first responder rather than the controller in my storyboard. Changing it there to use the controller fixed this error.
-
Artem Zaytsev over 7 yearsWell, actually it worked. Thanks a lot. But i am wondering: this code-implemented solution probably should do the same thing, that setting up dataSource and delegate in Storyboard, isn't it?
-
Mina over 7 yearsthank you for this, solved a problem that has taken hours to debug.