2015-09-18 44 views
18

Các App Programming Guide for tvOSngắn gọn bang màTôi có thể sử dụng NSUserDefaults với tvOS không?

Không có lưu trữ địa phương kiên trì cho các ứng dụng trên Apple TV. Điều này có nghĩa là mọi ứng dụng được phát triển cho Apple TV mới phải có khả năng lưu trữ dữ liệu trong iCloud và truy xuất dữ liệu theo cách cung cấp trải nghiệm khách hàng tuyệt vời.

Điều này có nghĩa là NSUserDefaults không khả dụng? Cơ chế nào có sẵn để lưu trữ dữ liệu không?

Trả lời

24

Theo một thành viên của Apple Nhân viên trên devforums, bạn có thể sử dụng NSUserDefaults trên tvOS lên đến 500 kb dữ liệu:

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

+0

Cảm ơn! Đây là loại câu trả lời dứt khoát mà tôi đang tìm kiếm :) – jtbandes

+0

Ai đó có thể xác minh rằng informa tion được lưu trữ bằng cách sử dụng NSUserDefaults trên apple tv có sẵn tại mỗi khởi động của ứng dụng? – svrs

5

Apple thực sự muốn bạn (và khách hàng AppleTV) đăng ký và sử dụng iCloud.

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

Đoạn giới thiệu:

lưu trữ trên Apple TV là có hạn, và không có gì bảo đảm rằng thông tin được lưu trữ trên thiết bị sẽ có mặt trong thời gian tới người dùng mở ứng dụng của bạn. Ngoài ra, để chia sẻ dữ liệu của người dùng trên nhiều thiết bị, bạn cần lưu trữ thông tin của người dùng ở đâu đó ngoài Apple TV. Apple cung cấp hai tùy chọn bộ nhớ dùng chung cho Apple TV: Bộ nhớ khóa giá trị iCloud (KVS) và CloudKit.

Đối với các tệp nhỏ hơn 1 meg, bạn sẽ sử dụng iCloud Key-Value Storage (KVS). Để lưu trữ hơn 1 Meg, bạn sẽ sử dụng CloudKit.

13
+0

cũng là điều tuyệt vời! +1 cho bạn vì [nhận thấy phần lớn nền tảng cũng được tích hợp vào tvOS] (https://developer.apple.com/library/ –

+2

Đây là một tài liệu đã tồn tại trong> 10 năm, nhưng nó không nói bất cứ điều gì cụ thể về tvOS.Tôi tự hỏi nếu có ai đã thử nghiệm này hoặc tìm thấy nhiều hơn tài liệu chính thức/cụ thể nói rằng nó có thể hoặc không thể được sử dụng ... – jtbandes

+0

Đây là câu trả lời đúng Trên tvOS, NSUserDefaults có sẵn, nhưng nó sẽ chỉ tồn tại một lượng nhỏ dữ liệu – lemnar

2

Để theo dõi câu trả lời @ vegashacker, những cùng một nhân viên Apple cũng nói:

Bạn cũng có thể lưu trữ nội dung cục bộ bằng cách sử dụng nhiệt độ ứng dụng và thư mục bộ nhớ cache, nhưng lưu ý rằng dữ liệu này sẽ bị xóa.

Thanh trừng có thể xảy ra khi bạn không còn chạy ứng dụng nữa, ví dụ: khi tài nguyên bị áp lực, hoặc khi khởi động lại.

0

NSUserMặc định có sẵn nhưng có kích thước giới hạn trên tvOS. Theo nhân viên Apple trên diễn đàn "NSUserDefaults được cho phép và hỗ trợ tới 500KB dữ liệu." và "Hành vi cũng giống như trên iOS: NSUserDefaults liên tục miễn là người dùng không xóa ứng dụng khỏi thiết bị".

Cũng theo NSUserDefaults.h tiêu đề "NSUserDefaultsSizeLimitExceededNotification được đăng tải trên hàng đợi chính khi nhiều dữ liệu được lưu trữ trong giá trị mặc định sử dụng hơn được cho phép. Hiện nay không có giới hạn cho giá trị mặc định người dùng cục bộ ngoại trừ trên tvOS, nơi một thông báo cảnh báo sẽ được đăng ở 512kB và quá trình chấm dứt ở mức 1MB.Đối với các giá trị mặc định phổ biến, giới hạn tùy thuộc vào người dùng iCloud đã đăng nhập. "

Các vấn đề liên quan