Ajout d'objets dans des NSMutableArray
Je suis assez confus sur la façon d'ajouter des objets dans les tableaux multidimensionnels.
Est en cours d'initialisation de tableaux multidimensionnels sont les mêmes avec juste un simple tableau?
C'est mon initialisation.
testList = [[NSMutableArray alloc] init];
J'ai besoin de faire quelque chose comme
testList[i][j] = item;
j'ai essayé
[[[testList objectAtIndex:i]objectAtIndex:j] addObject:item];
mais il ne semble pas fonctionner 🙁
vous devez ajouter plus de
NSMutableArray
(ou NSArray
) objets de l'original de votre testList
, parce que il n'y a pas de multi dimension de tableau en objective-c, vous pouvez utiliser le NSMutableDictionary
(ou NSDictionary
) avec KVC; ou, vous pourriez être combinés les uns avec les autres; ou vous pouvez utiliser NSMutableSet
(ou NSSet
) ou vous pouvez combiner le tout avec tout... tout est très illimitée, cela dépend du type de données que vous souhaitez représenter.OriginalL'auteur Rowie Po | 2012-07-17
Vous devez vous connecter pour publier un commentaire.
Vous ajoutez trop de C pour ce faire. C'est important de savoir comment NSMutableArray fonctionne et comment il est différent de comparer 2D tableaux connus de C/C++.
Dans mutable tableau vous pouvez stocker un autre des tableaux. Par exemple:
Maintenant, vous avez de tableau dans la première ligne du premier tableau! C'est quelque chose de très comme le C/C++ 2D tableaux.
Donc, si vous voulez ajouter un objet à "0,0" vous faites cela:
Alors maintenant, vos deuxième contient NSStrings et première contient deuxième. Maintenant, vous pouvez faire une boucle de cela comme vous voulez.
----EDIT:
SI vous voulez 1,0 vous avez simplement besoin d'un autre exemple de deuxième NSMutableArray. Par exemple, vous avez ce tableau:
Donc, ici, vous serez en avoir 3 éléments dans deuxième tableau.
Vous pouvez mettre en œuvre NSCopying protocole pour ce faire.
- je mettre à jour ma réponse. Espère que j'ai fait, il est clair.
OriginalL'auteur Jakub
Si vous avez besoin d'un tableau de taille fixe, puis utilisez la plaine C tableau. Avant d'utiliser la dynamique ObjC tableau, il doit le créer:
UPD: Les méthodes suivantes peut être utile de travailler avec un tel tableau:
dans NSMutableArray vous n'avez pas à déclarer la taille d'abord, vous devez simplement ajouter un autre objet. Il n'y a plus comme des listes en c++ que les tableaux.
OriginalL'auteur onegray
Pour élargir @onegray réponse, vous pouvez configurer certaines catégorie de méthodes pour rendre doux les tableaux multidimensionnels plus facile à traiter.
MultiMutableArray.h
MultiMutableArray.m
exemple, MultiArrayTests.m
J'ai écrit plus de détails à http://peterdeweese.tumblr.com/post/27411932460/soft-multi-dimensional-arrays-in-objective-c
OriginalL'auteur Peter DeWeese
OriginalL'auteur Girish Kolari