nsuserdefaults tvos

¿Puedo usar NSUserDefaults con tvOS?



(5)

La Guía de programación de aplicaciones para tvOS establece brevemente que

No hay almacenamiento local persistente para aplicaciones en Apple TV. Esto significa que cada aplicación desarrollada para el nuevo Apple TV debe poder almacenar datos en iCloud y recuperarlos de una manera que proporcione una excelente experiencia al cliente.

¿Significa esto que NSUserDefaults no está disponible? ¿Qué mecanismos están disponibles para el almacenamiento de datos?


Apple realmente quiere que usted (y los clientes de AppleTV) se registren y utilicen iCloud.

Aquí está la documentación actual sobre qué hacer para el almacenamiento persistente con AppleTV .

El párrafo introductorio:

El almacenamiento en Apple TV es limitado, y no hay garantía de que la información almacenada en el dispositivo esté disponible la próxima vez que un usuario abra su aplicación. Además, para compartir los datos del usuario en múltiples dispositivos, debe almacenar la información del usuario en otro lugar que no sea el Apple TV. Apple ofrece dos opciones de almacenamiento compartido para Apple TV: iCloud Key-Value Storage (KVS) y CloudKit.

Para archivos de menos de 1 megas, utilizará el almacenamiento de valor clave de iCloud (KVS). Para almacenamiento de más de 1 Meg, usarás CloudKit.



NSUserDefaults está disponible pero tiene un tamaño limitado en tvOS. Según el personal de Apple en el foro, "NSUserDefaults está permitido y admite hasta 500 KB de datos". y también "El comportamiento es el mismo que en iOS: NSUserDefaults es persistente siempre y cuando el usuario no elimine la aplicación del dispositivo".

También de acuerdo con el encabezado NSUserDefaults.h "NSUserDefaultsSizeLimitExceededNotification se publica en la cola principal cuando se almacenan más datos en la configuración predeterminada del usuario. Actualmente no hay límite para la configuración predeterminada del usuario local, excepto en TVOS, donde se publicará una advertencia a 512kB. y el proceso finalizó a 1 MB. Para los valores predeterminados ubicuos, el límite depende del usuario que haya iniciado sesión en iCloud ".


Para dar seguimiento a la respuesta de @ vegashacker, el mismo miembro del personal de Apple también dijo:

También puede almacenar el contenido localmente utilizando los directorios temp y cache de la aplicación, pero tenga en cuenta que estos datos se eliminarán.

Es probable que la purga se produzca cuando la aplicación ya no se ejecute, por ejemplo, cuando los recursos están bajo presión, o al reiniciar.