initWithCapacity:
se declara en NSMutableArray
, pero quiero usarlo para inicializar un NSArray
. ¿Hay alguna solución?initWithCapacity: en NSArray
Respuesta
No tiene sentido iniciar NSArray
usando initWithCapacity:
, porque no puede agregar objetos posteriormente. Un NSArray
sin objetos tiene una capacidad de facto de 0. ¿Qué estás realmente tratando de lograr?
Dado que NSArray
los objetos son inmutables (no se pueden cambiar los objetos que contienen) no sirve de nada ajustar la capacidad de NSArray
s.
La capacidad es la cantidad de objetos que una matriz puede contener sin reasignar la memoria. Solo se usa para optimización.
Simplemente haga una NSMutableArray
con initWithCapacity:
, llénela con cosas, y luego haga una NSArray
de ella.
puede utilizar cualquiera:
NSArray *_immutableArray = [_mutableArray copy];
...
[_immutableArray release];
O:
NSArray *_immutableArray;
[_immutableArray initWithArray:_mutableArray];
...
[_immutableArray release];
O:
NSArray *_immutableArray = [NSArray arrayWithArray:_mutableArray];
Esto es probablemente más costoso que simplemente usar un tamaño predeterminado y dejarlo expandirse. – Alexander
Mídalo y repórtalo con números. –
Creo que obtener un resultado concluyente sobre cuál es más rápido sería realmente difícil sin analizar el código fuente. Hay tantas variables como el número de elementos para agregar, las condiciones de memoria (y por lo tanto el rendimiento de realloc), etc. – Alexander
- 1. Objetivo-c NSArray init frente initWithCapacity: 0
- 2. NSMutableArray arrayWithCapacity vs initWithCapacity
- 3. IOS: NSMutableArray initWithCapacity
- 4. NSMutableArray initWithCapacity matices
- 5. NSArray en orden descendente
- 6. ¿Ordenar números en NSArray?
- 7. Convertir NSArray en NSDictionary
- 8. Cómo usar NSArray del objeto NSArray en el objetivo c?
- 9. ¿Cuál es la convención estándar para crear un nuevo NSArray de un NSArray existente?
- 10. Cómo convertir NSArray en NSString
- 11. Inserte NSArray en un NSDictionary
- 12. Objective-C class -> string like: [NSArray className] -> @ "NSArray"
- 13. Obtener un NSArray de un solo atributo de un NSArray
- 14. NSArray to C array
- 15. NSDiccionario a NSArray?
- 16. Tamaño de un NSArray
- 17. objeto NSArray multidimensional
- 18. Enumeración de NSArray múltiple
- 19. NSArray y NSString
- 20. NSString a NSArray
- 21. NSArray writeToFile falla
- 22. Buscar NSArray de NSDictionaries
- 23. NSArray y bool values
- 24. ¿Cómo extiendo un NSArray?
- 25. NSArray containsObject method
- 26. NSArray de int []
- 27. Agregar elementos NSArray
- 28. Ordenar NSArray contiene AAO
- 29. ¿Invertir una preocupación NSArray?
- 30. Ejecutando bloques desde NSArray?
Esa pregunta tiene relación alguna con su respuesta. –
Estoy implementando un caché de tamaño fijo y descubro que 'NSArray' se ajusta a ese criterio. Inicializar una matriz vacía con capacidad tiene sentido, ¿no? – mr5