Pregunta NSMutableArray removeObjectAtIndex causa error [cerrado]


Este es probablemente un problema simple, pero si alguien puede darme una pista de lo que está mal en el siguiente escenario, simplemente no entiendo. Tengo un NSMutableArray "playerArray", que tiene objetos "ZERO", "ONE", "TWO", TRES ".

Estoy tratando de eliminar el objeto en "fila" pero no funciona. ¿Podría ser para que devuelva una matriz inmutable ya que la excepción parece ser lanzada porque no responde a removeObjectAtIndex?

 NSUInteger row = 1; // [indexPath row];
 NSLog(@"playerArray:%@", playerArray);
 NSLog(@"row: %i", row);
 [playerArray removeObjectAtIndex:row];  

El resultado es:

playerArray :(
      CERO,
      UNO,
      DOS,
      TRES
  )
  2010-11-21 20: 58: 46.681 FamQuiz_v2 [2166: 207] fila: 1
  2010-11-21 20: 58: 46.682 FamQuiz_v2 [2166: 207] - [__ NSArrayI removeObjectAtIndex:]: selector no reconocido enviado a la instancia 0x5e3b9a0
  2010-11-21 20: 58: 46.683 FamQuiz_v2 [2166: 207] * Aplicación de finalización debido a una excepción no detectada 'NSInvalidArgumentException', razón: '- [__ NSArrayI removeObjectAtIndex:]: selector no reconocido enviado a la instancia 0x5e3b9a0'


9
2017-11-21 20:22


origen


Respuestas:


Parece que su matriz no es realmente una NSMutableArray. Verifíquelo registrando el nombre de la clase:

NSLog(NSStringFromClass([playerArray class]));

o, consulte con:

if ([playerArray isKindOfClass: [NSMutableArray class]])
{
...
}

19
2017-11-21 20:31



El mensaje de error indica que playerArray es una instancia de NSArray, no NSMutableArray. No puede llamar a removeObjectAtIndex en una instancia de NSArray.

-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance

9
2017-11-21 20:30