Pregunta

Yo he creado UITableView Proyecto en Xcode 4.6 con iOS 6.1 SDK, y configura SDK de destino a 5.1, cuando la aplicación llame dequeueReusableCellWithIdentifier en cellForRowAtIndexPath Función, la aplicación lanza una excepción, el simulador es 5.1, en Simulator 6.x está bien.

1: [UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: Selector no reconocido enviado a instancia

2: Aplicación de terminación debido a la excepción no capturada NSInvalidArgumentException, razón: -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: Selector no reconocido enviado a instancia

¿Fue útil?

Solución 2

Si miras la documentación de Apple, verás que dequeueReusableCellWithIdentifier: forIndexPath: Entró con iOS 6.0.

Eso significa que si intenta llamar a este método en dispositivos iOS 5.x, va a lanzar una excepción.

Sería mejor si usaste el más viejo. "dequeueReusableCellWithIdentifier:" Llame si es posible.

Una gran diferencia entre las dos llamadas es que este último (más antiguo) uno lata Devuelva NIL, en cuyo caso necesita para ALLOC / INICIO una nueva celda reutilizable.

Otros consejos

1. DealesuereusableHeaderFooterviewWithIdentifier
Disponibilidad
Disponible en iOS 2.0 y más tarde.
-> La versión mínima de iOS requerida para ejecutar esta función es iOS 2.0

2 .dequeuereusablecellwithidentifier: ForindExpath:
Disponibilidad
Disponible en iOS 6.0 y más tarde.
-> La versión mínima de iOS requerida para ejecutar esta función es iOS 6.0

EDITARSi desea utilizar esta función, puede verificar su versión actual del dispositivo y luego implementar esto

NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
NSLog(@"curr version = %f",[currSysVer floatValue]);

if ([currSysVer floatValue] >= 6) {
    //iOS 6.0 and later code
    // dequeueReusableCellWithIdentifier:forIndexPath:
}
else{
    //dequeueReusableHeaderFooterViewWithIdentifier
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top