Comment créer un 2D NSArray ou NSMutableArray en objective-C?
Je veux poser au sujet de l'objectif C question. Je veux créer un 2D NSArray ou NSMutableArray en objective C. Que dois-je faire? L'objet stocké dans le tableau est NSString *. Merci mcuh.
Je vous remercie pour votre réponse. Est-il possible de créer un tableau dynamique et de ne pas régler la longueur de la commencer? Oui. Si vous le souhaitez, je peux vous donner un exemple. Je vous remercie pour votre réponse. Pourriez-vous me donner l'exemple. Je vous remercie beaucoup. J'ai édité ma réponse déjà. Je vous remercie beaucoup. et je voudrais poser une question. pourquoi il a besoin de l' [intérieur release]; dans cette position.
Édité pour rendre ma réponse plus pertinente à la question. Au départ, je n'avais pas remarqué que vous étiez à la recherche d'un tableau 2D. Si vous savez combien par combien vous avez besoin à l'avant, vous pouvez intercaler des données et avoir une foulée. Je sais qu'il y a probablement d'autres (plus objectif standard) des façons d'avoir des tableaux à l'intérieur d'un tableau mais pour moi cela devient confus. Un tableau à l'intérieur d'un tableau n'est pas un 2 dimensions tableau. C'est juste une seconde dimension, dans UN des objets. Vous devez ajouter un tableau pour chaque objet, et ce n'est pas ce que je pense de un 2 dimensions tableau. Bon ou mauvais j'ai l'habitude de faire les choses d'une manière qui fait sens pour moi.
Donc disons que vous avez besoin d'un 6x6 tableau:
int arrayStride=6;int arrayDepth=6;NSMutableArray*newArray =[[NSMutableArray alloc] initWithCapacity:arrayStride*arrayDepth];
Je préfère pour l'initialiser en la remplissant avec des objets;
Puis, après que vous pouvez accéder à des objets par firstDim + secondDim*6
int firstDim =4;int secondDim =2;NSString*nextString =[newArray objectAtIndex:firstDim+secondDim*6];
Ne pas répondre à la question (OP est de poser des questions à propos d'un tableau en 2 dimensions), et est incorrect de démarrage (indices commencent à 0, de sorte que l'indice du dernier objet est i-1, pas moi). Je n'ai pas remarqué la 2D chose... et oui mes j'ai été incorrect pour le dernier objet. Merci pour le tuyau. J'ai changé ma réponse à la façon dont je voudrais faire un tableau 2D.
C'est certainement possible, mais je pense qu'il est digne de remarque que NSArrays ne peut contenir objets, pas de types primitifs.
Le moyen de contourner ce problème est d'utiliser le type primitif
NSNumber
.Oui. Si vous le souhaitez, je peux vous donner un exemple.
Je vous remercie pour votre réponse. Pourriez-vous me donner l'exemple. Je vous remercie beaucoup.
J'ai édité ma réponse déjà.
Je vous remercie beaucoup. et je voudrais poser une question. pourquoi il a besoin de l' [intérieur release]; dans cette position.
OriginalL'auteur Jacob Relkin
Essayer NSMutableDictionary avec NSNumbers que les clés et les tableaux comme des objets. Une dimension seront les clés, l'autre sera les objets.
Pour créer le "spécifiques à un tableau 2D"
Pour extraire les données
OriginalL'auteur Martin Herman
Édité pour rendre ma réponse plus pertinente à la question. Au départ, je n'avais pas remarqué que vous étiez à la recherche d'un tableau 2D. Si vous savez combien par combien vous avez besoin à l'avant, vous pouvez intercaler des données et avoir une foulée. Je sais qu'il y a probablement d'autres (plus objectif standard) des façons d'avoir des tableaux à l'intérieur d'un tableau mais pour moi cela devient confus. Un tableau à l'intérieur d'un tableau n'est pas un 2 dimensions tableau. C'est juste une seconde dimension, dans UN des objets. Vous devez ajouter un tableau pour chaque objet, et ce n'est pas ce que je pense de un 2 dimensions tableau. Bon ou mauvais j'ai l'habitude de faire les choses d'une manière qui fait sens pour moi.
Donc disons que vous avez besoin d'un 6x6 tableau:
Je préfère pour l'initialiser en la remplissant avec des objets;
Puis, après que vous pouvez accéder à des objets par firstDim + secondDim*6
Je n'ai pas remarqué la 2D chose... et oui mes j'ai été incorrect pour le dernier objet. Merci pour le tuyau. J'ai changé ma réponse à la façon dont je voudrais faire un tableau 2D.
OriginalL'auteur badweasel