Подтвердить что ты не робот

Могу ли я использовать NSUserDefaults с tvOS?

Руководство по программированию приложений для tvOS вкратце заявляет, что

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

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

4b9b3361

Ответ 3

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

Вот текущая документация о том, что делать для постоянного хранения с помощью AppleTV.

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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