numberOfRowsInSection - unrecognized selector sent to instance issue

25,339

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

enter image description here

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.

Share:
25,339

Related videos on Youtube

Brian H.
Author by

Brian H.

Updated on May 29, 2020

Comments

  • Brian H.
    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.
    Brian H. almost 13 years
    I 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
    Deepak Danduprolu almost 13 years
    Select the File's Owner and check the Identity Inspector on the right. What's the class name there?
  • Brian H.
    Brian H. almost 13 years
    The class name is UIApplication.
  • Deepak Danduprolu
    Deepak Danduprolu almost 13 years
    I think you selected a Window-based Application rather than a View-based Application while creating the project. You can consider starting over.
  • Brian H.
    Brian H. almost 13 years
    Alright, thank you very much for all your help. It's much appreciated.
  • AdamFortuna
    AdamFortuna over 11 years
    This 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
    Artem Zaytsev over 7 years
    Well, 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
    Mina over 7 years
    thank you for this, solved a problem that has taken hours to debug.