¿Alguien me puede explicar brevemente cuándo necesitaría usar NSCache? Leo la documentación y no la entiendo. ¿Me das un ejemplo de un escenario en el que NSCache sería útil? Gracias.¿Qué es NSCache?
Respuesta
Es más o menos igual que un diccionario, con las siguientes cosas adicionales (como se ha mencionado por el docs):
La clase NSCache incorpora diversas políticas de eliminación automática, que asegurarse de que no utiliza Demasiado de la memoria del sistema. El sistema lleva a cabo automáticamente estas políticas si la memoria es necesaria para otras aplicaciones . Cuando se invoca, estas políticas eliminan algunos elementos del caché , lo que minimiza su huella de memoria .
Puede agregar, eliminar y consultar elementos en la memoria caché desde diferentes subprocesos sin tener que bloquear el caché usted mismo.
Recuperar algo de un objeto NSCache devuelve un resultado que se ha liberado automáticamente.
A diferencia de un objeto NSMutableDictionary, un caché no copia los objetos clave que se colocan en él.
Puede usarlo si su aplicación tiene muchos datos con los que necesita trabajar, pero no puede mantener todo en la memoria. Por ejemplo, si tiene una aplicación que extrajo datos de una base de datos SQL Lite o de un servicio web, puede almacenarla en un NSCache después de buscarla. Luego, cuando lo necesite nuevamente, puede verificar primero el caché y solo debe presionar la base de datos si no está en el caché. La principal ventaja en este escenario sobre el uso de un diccionario normal es que si coloca demasiadas cosas en la memoria caché y comienza a llenar la memoria, automáticamente descartará cosas para liberar memoria para usted.
Gracias, hombre, está muy claro ahora. – sumderungHAY
Es muy interesante que no copie la clave, supongo que significa que la clave podría cambiar después de que se establezca, lo que tiene una implicación extraña, al comparar direcciones clave o hash. Presumiblemente aún hashes. Tengo que pensar en dónde puedo usar esto. Además de usar claves no compatibles con NSCopying. –
Lo divertido es que he utilizado para recuperar 27k entradas de mi base de datos sql local y el uso de NSCache ahora toma menos de un segundo en lugar de 5 segundos completos. Gracias hombre – Eugene
- 1. propiedad del nombre NSCache
- 2. Cómo usar NSCache
- 3. Guardar NSCache contenido en disco
- 4. Política de eliminación automática de NSCache
- 5. ¿Cómo almacenar datos en NSCache en iOS?
- 6. Objetivo-c: ¿beneficios de usar NSCache sobre un NSMutableDictionary estático?
- 7. Cómo utilizar NSCache con una implementación genérica de NSDiscardableContent
- 8. Android: ¿Qué es R? ¿Por qué es tan críptico?
- 9. ¿Qué es WebIDL y (por qué) es importante?
- 10. ¿Qué es y qué no es una historia de usuario?
- 11. ¿Qué es Mage y de qué manera es útil?
- 12. ¿Qué es "matemática de cuerdas" y por qué es malo?
- 13. ¿Cómo reconocer qué es y qué no es recursividad final?
- 14. ¿Qué es SSO
- 15. ¿Qué es "Elevación Lambda"?
- 16. Lua, ¿qué es Lua?
- 17. ¿Qué es sandboxing?
- 18. ¿Qué es el remitente?
- 19. ¿Qué es ** en C++?
- 20. ¿Qué es FAR PASCAL?
- 21. ¿Qué es SVN? (PHP)
- 22. ¿Qué es log-likelihood?
- 23. ¿Qué es tempuri.org?
- 24. ¿Qué es GenericIdentity?
- 25. ¿Para qué es "float_t"?
- 26. ¿Qué es "datos urgentes"?
- 27. ¿Qué es un SSTable?
- 28. ¿Qué es __kernel_vsyscall?
- 29. ¿Qué es safecall?
- 30. Java: ¿Qué es "para (;;)"
¿Por qué lo preguntas? ¿Para qué te gustaría usarlo? ¿Qué te hizo mirarlo? En resumen, ¿cuál es el problema que estás tratando de resolver? –
Estaba navegando por la lista de clases en documentos y lo encontré. Lo encontré interesante ... sin una razón en particular. – sumderungHAY