Qu'est-ce que __nsarrayi et __nsarraym?
__Nsarrayi (ou m) Cause une erreur "Sélecteur non reconnue".
Comment convertir en Nsarray?
J'ai testé pour analyser JSON, Twitter API.
http://api.twitter.com/1/flowers/ids.json?cursor=-&screen_name=TwitterAPI
==> fonctionne bien. L'objet analysé est NSCFDictionary Class. (Ce dictionnaire contient __nsarraym classe)
http://api.twitter.com/1/statats/user_timeline.json?&screen_name=TwitterAPI
==> erreur. L'objet analysé est __nsarraym classe.
__NSArrayI
est un mot de code pour un tableau immuable - c'est-à-dire un "régulier" NSArray
que vous ne pouvez pas changer.
__NSArrayM
est un mot de code pour une matrice mutable - c'est-à-dire NSMutableArray
. Dans NSMutableArray
, vous pouvez ajouter et supprimer des éléments.
Ce sont des cours de l'API privé. Là-bas est un projet où vous pouvez voir toutes les classes de l'API privé. Vous n'êtes pas autorisé à les utiliser dans une application pour le app store
Mais parfois, il est utile de voir comment accéder aux objets et aussi quel type d'objet c'est. Ils ne peuvent pas être convertis. Je pense que ce type d'objets à l'intérieur du débogueur n'est que la représentation des classes internes, pour les classes que vous utilisez dans votre projet. Savoir quel genre de classe il est, vous permet également de comprendre où rechercher le problème de votre code.
Ici, vous pouvez voir une brève recherche des deux:
__ Nsarrayi
__ nsarraym
Ce sont des cours privés. Vous ne devriez pas vouloir y accéder ou en outre les convertir.
Si je ne me trompe pas NSArray
est la sous-classe de _NSArray
.
Si vous ajoutez/supprimez des objets à/à partir de votre tableau, vérifiez qu'il est de type mutable: NSMutableArray