¿Cuál es la forma más eficiente de memoria de recorrer un NSMutableArray de objetos personalizados? Necesito comprobar un valor en cada objeto de la matriz y devolver cuántos de ese tipo de objeto hay en la matriz.Pasa por NSMutableArray de objetos personalizados de la forma más eficiente desde el punto de vista de la memoria
Respuesta
for (WhateverYourClassNameIs *whateverNameYouWant in yourArrayName) {
[whateverNameYouWant performSelector];
more code here;
}
Se llama enumeración rápido y era una característica nueva con Objective C 2.0, que está disponible en el iPhone.
yo probablemente sólo tiene que utilizar un predicado, lo que sería algo como esto:
NSArray * filtered = [myArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"aProperty = %@", @"someValue"]];
NSLog(@"number of items where aProperty = someValue: %d", [filtered count]);
Editar: Este código es funcionalmente equivalente a:
NSMutableArray * filtered = [NSMutableArray array];
for (MyCustomObject * object in myArray) {
if ([[object aProperty] isEqual:@"someValue"]) {
[filtered addObject:object];
}
}
¿Te importa dar una pequeña explicación de este pedazo de código? Soy un novato de iPhone y un novato de Obj-C. Tu código parece pequeño e impresionante, pero odio usar cosas que no entiendo. –
lea los Documentos para 'filteredArrayUsingPredicate' y' NSPredicate predicateWithFormat' – mga
@Pselus - respuesta editada –
- 1. NSMutableArray gestión de la memoria
- 2. ¿Cuál es la forma más eficiente de ordenar un NSSet?
- 3. ¿Cuál es la forma más eficiente de copiar de forma masiva a SQL Server desde Java?
- 4. cómo borrar un NSMutableArray de objetos personalizados sin crear pérdidas de memoria?
- 5. punto más cercano en la superficie cóncava desde el punto
- 6. La forma más eficiente de calcular la distancia de Levenshtein
- 7. La forma más eficiente de crear un árbol desde la lista de adyacencia
- 8. La forma más eficiente de leer datos de una secuencia
- 9. La forma más eficiente de leer el archivo
- 10. ¿Forma más eficiente de ejecutar la consulta de fecha/aaaa?
- 11. La forma más eficiente de implementar una búsqueda fonética
- 12. La forma más rápida y eficiente de crear XML
- 13. ¿Cuál es la forma más eficiente de eliminar un número grande (más de 10.000) objetos en Core Data?
- 14. Vector limpia cada iteración de bucle. ¿Cuál es la forma más eficiente de memoria?
- 15. ¿Cómo guardo los objetos en Java de forma eficiente utilizando la memoria RAM disponible?
- 16. la forma más eficiente de la cadena separada
- 17. La forma más eficiente de hacer 22 construcciones diferentes
- 18. ¿La manera más eficiente de dibujar objetos idénticos múltiples?
- 19. C# forma más eficiente de la comparación de dos colecciones
- 20. ¿La forma más eficiente de buscar en SQL?
- 21. Java: colección ordenada que permite duplicados, es eficiente desde el punto de vista de la memoria y proporciona inserción rápida + actualización
- 22. Almacenar objetos personalizados (Obj definido por el usuario) en la base de datos de SQLite Android
- 23. ¿Por qué el código GUI es tan costoso desde el punto de vista computacional?
- 24. La forma más eficiente de obtener el recuento de filas de la tabla
- 25. ¿La forma más eficiente de Python para elegir la cadena más larga en la lista?
- 26. Problemas más comunes de CVS desde el punto de vista de un usuario de SVN
- 27. La forma más eficiente de almacenar direcciones IP en MySQL
- 28. ¿Cuál es la forma más eficiente de crear ListBuffer vacío?
- 29. ¿La forma más eficiente de agregar matrices en C#?
- 30. ¿Es esta la forma correcta y más eficiente de eliminar cadenas en blanco de NSArray?
Esta es una manera mejor gestión de memoria para hacer cosas, pero me gusta la publicación de Dave DeLong sobre Predicados. –