2015-09-18 4 views
18

В App Programming Guide for tvOSкратко утверждает, чтоМогу ли я использовать NSUserDefaults с tvOS?

Там нет постоянного локального хранения данных для приложений на Apple TV. Это означает, что каждое приложение, разработанное для нового Apple TV, должно иметь возможность хранить данные в iCloud и извлекать их таким образом, чтобы обеспечить отличный опыт работы с клиентами.

Означает ли это, что NSUserDefaults недоступно? Какие механизмы есть доступны для хранения данных?

ответ

24

По словам члена Apple, персонал на devforums, вы можете использовать NSUserDefaults на tvOS до 500 кбайт данных:

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

+0

Спасибо! Это тот окончательный ответ, который я искал :) – jtbandes

+0

Может кто-нибудь проверить, что informa сохраненное с помощью NSUserDefaults на Apple TV, доступно при каждом запуске приложения? – svrs

5

Apple действительно хочет, чтобы вы (и клиенты AppleTV) подписались и использовали iCloud.

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

Вводный параграф:

хранение на Apple TV ограничен, и нет никакой гарантии, что информации хранится на устройстве, будет доступна в следующий раз, когда пользователь открывает приложение. Кроме того, чтобы разделить данные пользователя через несколько устройств, вам необходимо сохранить информацию пользователя где-то , кроме Apple TV. Apple предоставляет два общих варианта хранения для Apple TV: iCloud Key-Value Storage (KVS) и CloudKit.

Для файлов размером менее 1 мегабайта вы будете использовать iCloud Key-Value Storage (KVS). Для хранения более 1 мегабайт вы будете использовать CloudKit.

13

Вы можете использовать NSUserDefaults для TVOS в соответствии с документацией.

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/AccessingPreferenceValues/AccessingPreferenceValues.html

+0

ну, пожалуйста, +1 к вам за [замечание, что большинство Foundation также встроено в tvOS] (https://developer.apple.com/library/ prerelease/tvos/navigation/# section = Frameworks & topic = Foundation) –

+2

Это документ, существовавший в течение> 10 лет. Тем не менее, он не говорит ничего конкретного о tvOS. Мне интересно, проверил ли кто-нибудь это или нашел больше официальную/специальную документацию о том, что ее можно использовать или не использовать ... – jtbandes

+0

Это правильный ответ. В tvOS доступны NSUserDefaults, но он будет сохраняться только в небольшом количестве данных. – lemnar

2

Чтобы следить за ответ @ vegashacker, тем тот же сотрудник Apple также сказал:

Вы также можете хранить контент локально, используя температуру приложения и кеш-каталогов, но учтите, что эти данные будут очищены.

Чистка, вероятно, произойдет, когда приложение перестает работать, например. когда ресурсы находятся под давлением или при перезагрузке.

0

NSUserDefaults доступен, но имеет ограниченный размер на tvOS. По словам сотрудников Apple на форуме «NSUserDefaults разрешено и поддерживает до 500 Кбайт данных». а также «Поведение такое же, как в iOS: NSUserDefaults является постоянным, если пользователь не удаляет приложение с устройства».

Также в соответствии с заголовком NSUserDefaults.h «NSUserDefaultsSizeLimitExceededNotification размещена на главную очереди, когда больше данных хранятся в дефолтах пользователей, чем разрешено. В настоящее время не существует никаких ограничений для локальных пользователей по умолчанию за исключением tvOS, где уведомление будет предупреждение размещаться на 512 КБ, а процесс прерывается на 1 МБ.Для вездесущих значений по умолчанию ограничение зависит от зарегистрированного пользователя iCloud. »

Смежные вопросы