initWithCapacity:
est déclaré en NSMutableArray
, mais je souhaite l'utiliser pour initialiser un NSArray
. Y a-t-il une solution?initWithCapacity: dans NSArray
Répondre
Cela n'a aucun sens d'initier un NSArray
en utilisant initWithCapacity:
, car vous ne pouvez pas ajouter d'objets par la suite. Un NSArray
avec aucun objet dans a une capacité de facto de 0. Qu'est-ce que vous essayez vraiment de réaliser?
Depuis NSArray
objets sont immuables (ne peut pas changer les objets qu'ils contiennent) il est inutile d'ajuster la capacité de NSArray
s.
La capacité est le nombre d'objets qu'un tableau peut contenir sans réaffecter la mémoire. Il est seulement utilisé pour l'optimisation.
Il suffit de créer un NSMutableArray
avec initWithCapacity:
, de le remplir avec des éléments, puis d'en créer un NSArray
.
Vous pouvez utiliser:
NSArray *_immutableArray = [_mutableArray copy];
...
[_immutableArray release];
Ou:
NSArray *_immutableArray;
[_immutableArray initWithArray:_mutableArray];
...
[_immutableArray release];
Ou:
NSArray *_immutableArray = [NSArray arrayWithArray:_mutableArray];
C'est probablement plus cher que de simplement utiliser une taille par défaut et de le laisser se développer. – Alexander
Mesurez-le et rapportez-le avec des chiffres. –
Je pense qu'obtenir un résultat concluant quant à ce qui est le plus rapide serait vraiment difficile sans analyser le code source. Il y a tellement de variables comme le nombre d'éléments à ajouter, les conditions de mémoire (et donc les performances de realloc), etc. – Alexander
- 1. Quelle est la convention standard pour créer un nouveau NSArray à partir d'un NSArray existant?
- 2. Filtre NSArray iphone
- 3. NSArray avec des objets personnalisés dans NSTableDataSource
- 4. NSArray de dates trier
- 5. NSArray avec des valeurs
- 6. NSArray ajouter des éléments
- 7. Trier NSArray par NSDate, aujourd'hui
- 8. NSArray avec des types C?
- 9. NSArray de problème d'encodage URL
- 10. NSArray initWithObjects: ne se charge pas
- 11. Comment trier un NSArray par ordre alphabétique?
- 12. Share NSArray Contenu entre plusieurs méthodes dans une même classe
- 13. Iphone, Obtention d'une liste de pays dans un NSArray
- 14. Quelle fonction de tri est utilisée dans NSArray?
- 15. Éléments de données NSArray to Core
- 16. iPhone NSArray de Dictionnaire des valeurs Dictionnaire
- 17. Insensible à la casse indexOfObject pour NSArray
- 18. Ajout de CalTasks à partir d'un NSArray
- 19. Concaténation contenu NSArray avec NSMutableString appendString
- 20. iPhone obtenir l'UIImageView de retour de NSArray
- 21. Est-ce que NSArray copie des objets?
- 22. iPhone | UIWebView: navigation par onglets à l'aide de NSArray?
- 23. Problème lors de la tentative d'accès à NSArray
- 24. Accès NSArray à partir d'un intervalle NSTimer = EXC_BAD_ACCESS
- 25. iPhone - obtention de valeurs uniques à partir de l'objet NSArray
- 26. Prendre un objet dans NSArray et le mettre au hasard dans les étiquettes
- 27. Comment ajouter facilement des objets CGPoint à un NSArray?
- 28. Comportement de NSArray (et autres conteneurs) sur dealloc
- 29. Pourquoi NSArray arrayWithObjects nécessite-t-il une valeur nulle?
- 30. comment puis-je stocker la valeur dans un NSArray en utilisant WritetoFile?
Cette question est sans aucun rapport avec sa réponse. –
J'implémente un cache de taille fixe et je trouve que 'NSArray' correspond à ce critère. Initialiser un tableau vide avec de la capacité a du sens, n'est-ce pas? – mr5