2011-06-01 19 views
8

Sigo recibiendo este problema al intentar ejecutar mi aplicación. Se compila correctamente:numberOfRowsInSection - Selector no reconocido enviado a la instancia número

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) 

Código parece que se queda pegada en:

- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section { 
    return [self.colorNames count]; 
} 
+0

Lo que es tableView? por favor muestra el código relevante. – MByD

+0

El código parece que se queda pegada a es: '- (NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: [count self.colorNames] sección (NSInteger) { de retorno; } ' –

+0

por favor edite la pregunta, no agregue esto en los comentarios. – MByD

Respuesta

31

La instancia de clase, que ha asignar a DataSource no implementa las funciones UITableViewDataSource.

@interface MyClassController :UIViewController <UITableViewDelegate,UITableViewDataSource> 

prueba como below.

myTableView.dataSource = self; 

* Nota self es la instancia de MyClassController

poner en práctica el método de UITableViewDataSource protocolo.

+0

Bueno, en realidad funcionó. Muchas gracias. Pero me pregunto: esta solución implementada por el código probablemente debería hacer lo mismo, que configurar dataSource y delegar en Storyboard, ¿no es así? –

12

Es muy probable que haya intentado que el delegado de su aplicación sea su fuente de datos pero accidentalmente haya realizado el File's Owner, que es el objeto UIApplication, el origen de datos. Esta es la razón por la cual el objeto de la aplicación parece estar recibiendo las solicitudes de datos.

+0

Lo hice, sin embargo soy bastante nuevo en esto y estaba siguiendo este tutorial, que dice que lo haga, así que estoy confundido sobre cómo continuar. [link] (http://www.techotopia.com/index.php/Creating_a_Simple_iOS_4_iPhone_Table_View_Application_ (Xcode_4)) –

+0

Seleccione el 'Propietario del archivo' y verifique' Identity Inspector' a la derecha. ¿Cuál es el nombre de clase allí? –

+0

El nombre de clase es UIApplication. –

3

El problema probablemente se deba a la asignación del propietario del archivo como delegado y fuente de datos de la Vista de tabla. Como han mencionado otros, el propietario del archivo es un objeto UIApplication que no se ajusta a los protocolos UITableViewDelegate y UITableViewDataSource con los que UITableView debe cumplir. Si está utilizando IB, simplemente conecte el Table View a su respetado View Controller para el delegado y el origen de datos en lugar del propietario del archivo.

0

Acabo de enfrentar este problema, y ​​creo que en algunos casos este problema se debe a un nuevo error de XCode.
-I borro el objeto de vista de tabla en el archivo xib.
-Recreate, luego conecta la fuente de datos y delegate al propietario del archivo.
- Limpiar el proyecto y luego ejecutarlo nuevamente, funciona sin ningún error.

0

Simplemente eliminé la conexión de tableView en XIB y eliminé el tableView y lo recreé.

Funcionado.

Gracias @ENVIL

7

enter image description here

un chequeo de las fuentes de datos y delegado de salida están conectados correctamente a la viewController ... Esto funcionó para mí ..

+0

gracias por esto, resolvió un problema que ha tardado horas en depurarse. – Mina

Cuestiones relacionadas