iPhone: recibí una advertencia cuando invierte un NSMutablearray

Necesito invertir (orderar en order descendente) un NSMutablearray. Probé el siguiente código y funciona, pero recibí una advertencia. ¿Cómo podría eliminar la advertencia?

NSMutablearray *resStatusArray; [resStatusArray sortUsingSelector:@selector(compare:)]; resStatusArray=[[resStatusArray reverseObjectEnumerator] allObjects]; 
 Warning:Incompitable pointer types assigning to 'NSMutablearray*_strong' from ' NSarray *' 

user1118321 es correcto en la explicación. Para solucionarlo, crearías una nueva matriz mutable. Sospecho que esto es más seguro que un yeso.

 resStatusArray = [NSMutableArray arrayWithArray:[[resStatusArray reverseObjectEnumerator] allObjects]]; 

El método allObjects devuelve un NSArray* , no un NSMutableArray* , por lo que el comstackdor le NSMutableArray* que su asignación a una variable NSMutableArray* es incorrecta.

Si estás seguro de lo que estás haciendo, puedes usar un yeso:

 resStatusArray=(NSMutableArray*_strong)[[resStatusArray reverseObjectEnumerator] allObjects]; 

Sin embargo, dudo que esto sea semánticamente correcto.

Establecerlo para que sea igual a:

 [NSMutableArray arrayWithArray:[[arrayNameToReverse reverseObjectEnumerator] allObjects]]; 

Esto es esencialmente crear una nueva matriz, de la antigua matriz mutable, pero invertida. La razón por la que funciona es porque NSMutableArray es una subclass de NSArray. Entonces, su código para invertir su matriz sería:

 resStatusArray = [NSMutableArray arrayWithArray:[[resStatusArray reverseObjectEnumerator] allObjects]];