iphone - how - ¿Qué es__NSArrayI y__NSArrayM? Cómo convertir a NSArray?
arreglos en xcode (3)
¿Qué es __NSArrayI y __NSArrayM?
__NSArrayI (o M) causa un error de "selector no reconocido".
Cómo convertir a NSArray?
Probé para analizar json, twitter api.
http://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=twitterapi
==> funciona bien. objeto analizado es clase NSCFDictionary. (Este diccionario contiene la clase __NSArrayM)
http://api.twitter.com/1/statuses/user_timeline.json?&screen_name=twitterapi
==> error. objeto analizado es __NSArrayM clase.
Es clases privadas. No deberías querer acceder a ellos ni convertirlos.
Si no me equivoco, NSArray
es la subclase de _NSArray
.
Si está agregando / eliminando algunos objetos de su matriz, verifique que sea de tipo mutable: NSMutableArray
Estas son clases de la API privada. Hay un proyecto donde puedes ver todas las clases de la API privada. No está permitido usarlos dentro de una aplicación para la app store
pero a veces también es útil ver cómo acceder a los objetos y también qué tipo de objeto es. No pueden ser convertidos. Creo que obtener este tipo de objetos dentro del depurador es solo la representación de las clases internas, para las clases que está usando dentro de su proyecto. Saber qué clase de clase es, le permite también entender dónde buscar el problema dentro de su código.
Aquí puede ver una breve búsqueda de ambos:
__NSArrayI
__NSArrayM
__NSArrayI
es una palabra clave para una matriz inmutable, es decir, una NSArray
"normal" que no se puede cambiar.
__NSArrayM
es una palabra clave para una matriz mutable, es decir, NSMutableArray
. En NSMutableArray
, puede agregar y eliminar elementos.