Intentar y atrapar no es manejar la excepción en iPhone
-
28-10-2019 - |
Pregunta
Estoy usando el siguiente código para detectar un error cuando ind.row no es un valor válido o a veces se vuelve nulo
@try {
if(ind.row<[[treeNode flattenElements] count])
{
[self.mTableView scrollToRowAtIndexPath:ind atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
}
@catch (NSException *e) {
NSLog(@"%@",e);
}
pero cuando este código se ejecuta a veces este error está ocurriendo
Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1262.60.3/UITableViewSupport.m:1948`
¿Cuál puede ser la razón de este error y por qué no se está manejando la excepción?
Solución 3
En realidad, ya estaba atrapando las excepciones ... Había establecido la parada de la bandera en las excepciones OBJC. Cuando eliminé que atrapaba las excepciones ... como lo señaló @StilesCRICISIS, el valor de IND era nulo en el momento de esta excepción. .
Otros consejos
Las afirmaciones en iOS no arrojan excepciones, por lo que no puedes atraparlas.
Necesitará averiguar qué le pasa a su llamada a -row
. Mi primera suposición sería que "Ind" ya está liberado o algo así.
Tendrá que verificar el índice, generar y plantear una excepción por su propia:Referencia de clase NSEXCeption
+ (void)raise:(NSString *)name format:(NSString *)format, ...