App Programming Guide for tvOS 简要表明
Apple TV上的应用没有持久的本地存储空间。这意味着为新Apple TV开发的每个应用都必须能够在iCloud中存储数据并以提供良好客户体验的方式检索它。
这是否意味着NSUserDefaults不可用?哪些 机制可用于数据存储?
答案 0 :(得分:26)
根据devforums上的Apple工作人员的说法,您可以在tvOS上使用NSUserDefaults获取高达500 kb的数据:
答案 1 :(得分:13)
根据文档,您可以将NSUserDefaults用于TVOS。
答案 2 :(得分: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键值存储(KVS)和CloudKit。
对于小于1兆的文件,您将使用iCloud键值存储(KVS)。对于超过1兆的存储,您将使用CloudKit。
答案 3 :(得分:2)
为了跟进@ vegashacker的回答,同一位Apple员工也表示:
您还可以使用应用程序temp和本地存储内容 缓存目录,但请注意,此数据将被清除。
当应用不再运行时,可能会发生清除,例如当资源处于压力之下或重启时。
答案 4 :(得分:0)
NSUserDefaults可用但在tvOS上的尺寸有限。根据论坛上的Apple工作人员和#34;允许使用NSUserDefaults,并支持最多500KB的数据。"并且"行为与iOS上的行为相同:只要用户不从设备中删除应用程序,NSUserDefaults就是持久的。"
另据NSUserDefaults.h标题 "当用户默认值中存储的数据多于允许数量时,NSUserDefaultsSizeLimitExceededNotification将发布在主队列中。目前本地用户默认设置没有限制,除了tvOS,其中警告通知将以512kB发布,并且该过程终止于1MB。对于无处不在的默认值,限制取决于登录的iCloud用户。"