Initialiser NSArray avec la taille
Comment initialiser un NSArray avec la taille seulement, de manière à utiliser une boucle for pour le remplir plus tard? Mon pour la boucle serait
for (int i = 0; i < [myArray count]; i++) {
myArray[i] = someData;
}
Si toutes les réponses sont en train de dire que je dois utiliser un NSMutableArray par opposition à un NSArray. Est-ce à dire que je ne peut pas utiliser directement un NSArray pour résoudre ce problème?
Un NSArray est immuable, ce qui signifie que son contenu ne peut être modifié dans le futur. Cela empêche également les objets d'être ajouté ou retiré de la matrice, de sorte que sa longueur restera toujours constante. Un NSMutableArray sur l'autre main est mutable en ce que les objets peuvent toujours être ajoutés ou retirés à tout moment, même après l'initialisation.
Ma restriction est que je ne veux pas la taille de modifier par inadvertance, mais en même temps, je veux de l'utilisateur pour être en mesure de mettre à jour les valeurs. La matrice est une matrice Booléenne. Je suis en provenance de Java, de sorte que vous comprendre mes problèmes. Le NSMutableArray signifie que la taille peut augmenter. Alors, comment puis-je empêcher la modification par inadvertance dans la taille ainsi que les valeurs de variable?
Vous ne pouvez pas le faire avec des classes intégrées. Vous pouvez rassembler
Si vous êtes juste de stocker des Booléens, vous pouvez utiliser un C tableau.
Un NSArray est immuable, ce qui signifie que son contenu ne peut être modifié dans le futur. Cela empêche également les objets d'être ajouté ou retiré de la matrice, de sorte que sa longueur restera toujours constante. Un NSMutableArray sur l'autre main est mutable en ce que les objets peuvent toujours être ajoutés ou retirés à tout moment, même après l'initialisation.
Ma restriction est que je ne veux pas la taille de modifier par inadvertance, mais en même temps, je veux de l'utilisateur pour être en mesure de mettre à jour les valeurs. La matrice est une matrice Booléenne. Je suis en provenance de Java, de sorte que vous comprendre mes problèmes. Le NSMutableArray signifie que la taille peut augmenter. Alors, comment puis-je empêcher la modification par inadvertance dans la taille ainsi que les valeurs de variable?
Vous ne pouvez pas le faire avec des classes intégrées. Vous pouvez rassembler
NSMutableArray
dans votre propre classe ou sous-classe si vous le souhaitez.Si vous êtes juste de stocker des Booléens, vous pouvez utiliser un C tableau.
OriginalL'auteur Katedral Pillon | 2014-12-09
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de l'initialiser avec une taille spécifique - vous pouvez ajouter des objets à plus tard:
Il existe de légers gains de performances si vous connaissez la taille à l'avance:
Mais c'est facultatif.
OriginalL'auteur Aaron Brager
NSNull
est la classe utilisée pour représenter un unset, invalide ou d'un objet inexistant. Par conséquent, vous pouvez remplir le tableau de taille spécifique à l'aide des instances de cette classe.En outre, vous ne pouvez pas utiliser la syntaxe
someArray[i] = xyz;
si la valeur à la positioni
n'existe pas, car cela provoquera une erreur de limites.array[i] = obj
sans ajouter quelque chose avant qu'il avecaddObject
?OriginalL'auteur max_