2015-09-18 26 views
18

I App Programming Guide for tvOSbrevemente stati chePosso usare NSUserDefaults con tvOS?

Non c'è memoria locale persistente per le applicazioni su Apple TV. Ciò significa che ogni app sviluppata per la nuova Apple TV deve essere in grado di archiviare i dati in iCloud e recuperarli in un modo che offra un'ottima esperienza al cliente.

Ciò significa che NSUserDefaults non è disponibile? Quali meccanismi sono disponibili per la memorizzazione dei dati?

risposta

24

Secondo un membro di Apple del personale sulle devforums, è possibile utilizzare NSUserDefaults su TVOS per un massimo di 500 KB di dati:

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

+0

Grazie! Questo è il tipo di risposta definitiva che stavo cercando :) – jtbandes

+0

Qualcuno può verificare che informa memorizzato con NSUserDefaults su Apple TV è disponibile ad ogni avvio dell'applicazione? – svrs

5

Apple vuole davvero che voi (e clienti AppleTV) registriate e utilizzate iCloud.

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

Il paragrafo introduttivo:

bagagli su Apple TV è limitata, e non v'è alcuna garanzia che informazioni memorizzate sul dispositivo sarà disponibile la prossima volta che un utente apre la vostra applicazione. Inoltre, per condividere i dati dell'utente su più dispositivi , è necessario memorizzare le informazioni dell'utente da qualche parte su diverse da Apple TV. Apple offre due opzioni di archiviazione condivise per Apple TV : iCaloud Key-Value Storage (KVS) e CloudKit.

Per file inferiori a 1 megabyte, verrà utilizzato il valore KVS (Key-Value Storage) di iCloud. Per la memorizzazione di più di 1 Meg, utilizzerai CloudKit.

13
+0

well drat! +1 a te per [notare che la maggior parte di Foundation è anche incorporata in tvOS] (https://developer.apple.com/library/ prerelease/tvos/navigation/# section = Frameworks e topic = Foundation) –

+2

Questo è un documento che esiste da> 10 anni, ma non dice nulla di specifico su tvOS Mi chiedo se qualcuno ha provato questo o trovato più documentazione ufficiale/specifica che afferma che può o non può essere usata ... – jtbandes

+0

Questa è la risposta corretta Su tvOS, NSUserDefaults è disponibile, ma persisterà solo una piccola quantità di dati. – lemnar

2

Per seguire fino risposta di @ vegashacker, il Lo stesso membro dello staff di Apple ha anche dichiarato:

È anche possibile memorizzare il contenuto localmente utilizzando l'applicazione temp e directory cache, ma nota che questi dati verranno eliminati.

È probabile che l'eliminazione si verifichi quando l'app non è più in esecuzione, ad es. quando le risorse sono sotto pressione o al riavvio.

0

NSUserDefaults è disponibile ma ha dimensioni limitate su tvOS. Secondo lo staff Apple sul forum "NSUserDefaults è consentito e supporta fino a 500 KB di dati." e anche "Il comportamento è lo stesso di iOS: NSUserDefaults è persistente finché l'utente non elimina l'app dal dispositivo."

Sempre secondo intestazione NSUserDefaults.h "NSUserDefaultsSizeLimitExceededNotification è pubblicato sulla coda principale quando più dati vengono memorizzati in default degli utenti rispetto a quella consentita. Al momento non v'è alcun limite per i valori di default utente locale tranne TVOS, dove una notifica di avviso essere pubblicato a 512kB e il processo è terminato a 1 MB.Per i valori predefiniti onnipresenti, il limite dipende dall'utente iCloud connesso. "