¿Qué es NSCache?

¿Alguien me puede explicar brevemente cuándo necesitaría usar NSCache? Leí la documentation y no la entiendo. Al igual, dame un ejemplo de un escenario donde NSCache sería útil? Gracias.

Es más o less como un dictionary, con las siguientes cosas adicionales (como lo menciona el documento):

La class NSCache incorpora varias políticas de eliminación automática, que aseguran que no utilice demasiada memory del sistema. El sistema realiza automáticamente estas políticas si otras aplicaciones necesitan memory. Cuando se invocan, estas políticas eliminan algunos elementos del caching, lo que minimiza su huella de memory.

Puede agregar, eliminar y consultar elementos en el caching de diferentes subprocesss sin tener que bloquear el caching usted mismo.

Recuperar algo de un object NSCache devuelve un resultado autoelevado.

A diferencia de un object NSMutableDictionary, un caching no copy los objects key que se colocan en él.

Puede usarlo si su aplicación tiene muchos datos con los que necesita trabajar, pero no puede save todo en la memory. Por ejemplo, si tuviera una aplicación que extrajera datos de una database SQL Lite o un service web, puede almacenarla en un NSCache después de searchla. Luego, cuando lo necesite de nuevo, puede verificar primero el caching y solo tiene que acceder a la database si no está en el caching. La principal ventaja en este escenario sobre el uso de un dictionary regular es que si pone demasiadas cosas en el caching y comienza a llenar la memory, descartará automáticamente las cosas para liberar memory para usted.