2015-09-18 1 views
18

Les App Programming Guide for tvOSbrièvement stipule quePuis-je utiliser NSUserDefaults avec tvOS?

Il n'y a pas de stockage local persistant pour les applications sur Apple TV. Cela signifie que chaque application développée pour la nouvelle Apple TV doit être capable de stocker des données dans iCloud et de les récupérer de manière à offrir une expérience client exceptionnelle.

Est-ce que cela signifie que NSUserDefaults n'est pas disponible? Quels mécanismes sont disponibles pour le stockage de données?

Répondre

24

Selon un membre d'Apple personnel sur les devforums, vous pouvez utiliser NSUserDefaults sur tvOS jusqu'à 500 kb de données:

https://forums.developer.apple.com/message/50696#50696

+0

Merci, c'est le genre de réponse définitive que je cherchais :) – jtbandes

+0

Quelqu'un peut-il vérifier que informa stocké en utilisant NSUserDefaults sur apple tv est disponible à chaque lancement de l'application? – svrs

5

Apple veut vraiment que vous (et les clients AppleTV) vous inscriviez et utilisiez iCloud.

Here is the current documentation on what to do for persistent storage with AppleTV.

Le paragraphe introductif:

Stockage sur Apple TV est limitée, et il n'y a aucune garantie que informations stockées sur l'appareil sera disponible la prochaine fois qu'un utilisateur ouvre votre application. En outre, afin de partager les données de l'utilisateur entre plusieurs appareils, vous devez stocker les informations de l'utilisateur quelque part à l'exception de l'Apple TV. Apple propose deux options de stockage partagé pour Apple TV: stockage de clé-valeur iCloud (KVS) et CloudKit.

Pour les fichiers moins de 1 meg, vous allez utiliser iCloud Storage Key-Value (KVS). Pour stocker plus de 1 Meg, vous utiliserez CloudKit.

13
+0

bien drat! +1 à vous pour [en remarquant que la plupart des fondations sont également intégrées dans tvOS] (https://developer.apple.com/library/ prerelease/tvos/navigation/# section = Frameworks & topic = Foundation) –

+2

Ceci est un document qui existe depuis plus de 10 ans, mais il ne dit rien de spécifique à propos de tvOS Je me demande si quelqu'un a testé cela ou trouvé plus documentation officielle/spécifique indiquant qu'elle peut ou ne peut pas être utilisée ... – jtbandes

+0

La réponse correcte est: Sur tvOS, NSUserDefaults est disponible, mais il ne conservera qu'une petite quantité de données: – lemnar

2

Pour donner suite à la réponse de @ vegashacker, la même membre du personnel Apple a également déclaré:

Vous pouvez également stocker du contenu localement en utilisant la température de l'application et répertoires de cache, mais notez que ces données seront purgées.

La purge est susceptible de se produire lorsque votre application n'est plus en cours d'exécution, par ex. lorsque les ressources sont sous pression ou au redémarrage.

0

NSUserDefaults est disponible mais a une taille limitée sur tvOS. Selon le personnel d'Apple sur le forum "NSUserDefaults est autorisé, et prend en charge jusqu'à 500 Ko de données." et aussi "Le comportement est le même que sur iOS: NSUserDefaults est persistant tant que l'utilisateur ne supprime pas l'application de l'appareil."

Toujours selon tête NSUserDefaults.h « NSUserDefaultsSizeLimitExceededNotification est affiché sur la file d'attente principale lorsque plus de données sont stockées dans les valeurs par défaut de l'utilisateur que ce qui est autorisé. À l'heure actuelle il n'y a pas de limite pour les défauts d'utilisateurs locaux sauf tvOS, lorsqu'une notification d'avertissement être publié à 512 Ko, et le processus s'est terminé à 1 Mo.Pour les valeurs par défaut omniprésentes, la limite dépend de l'utilisateur iCloud connecté. "