2012-01-02 28 views
7

Hiện tại, tôi đang phát triển một ứng dụng có chức năng phụ thuộc rất nhiều vào dữ liệu JSON đã truy xuất. Hầu hết dữ liệu tôi dự định lưu vào dữ liệu cốt lõi. Tuy nhiên, không chắc chắn tôi có phải lưu tất cả các công cụ liên quan đến người dùng (cài đặt, yêu thích, twitter, Facebook và vv) cũng trong dữ liệu cốt lõi hay tôi nên sử dụng NSUserDefaults? Ưu và nhược điểm là gì?Tôi có nên sử dụng dữ liệu cốt lõi để lưu trữ một số tùy chọn của người dùng hoặc lưu nó trong NSUserDefaults không?

+0

Câu trả lời này có so sánh tốt: http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl

Trả lời

9

Bạn có thể tham khảo hướng dẫn riêng của Apple: Implementing Application Preferences

bạn có thể lưu trữ các thiết lập người dùng trong bất kỳ cách nào bạn muốn: Sự lựa chọn giữa NSUserDefaults và Core dữ liệu chỉ là giữa API, nơi cựu đã thực sự được thiết kế để xử lý sở thích của người sử dụng.

NSUserDefaults và "thành phần cài đặt tích hợp" thực sự là một và giống nhau. Sử dụng ứng dụng cài đặt sẽ vẫn lưu trữ tùy chọn trong NSUserDefaults mà bạn truy cập trong ứng dụng của mình bằng API đó.

Lý do tại sao bạn có thể không muốn sử dụng ứng dụng cài đặt tích hợp sẽ là: Thật cồng kềnh khi người dùng thay đổi các cài đặt đó. Nếu bạn có cài đặt mà người dùng có thể muốn thay đổi thường xuyên, bạn có thể muốn thực hiện điều đó bên trong ứng dụng của mình (ví dụ: bật/tắt nhạc, thay đổi tên người chơi). Ngoài ra, vì bạn có toàn quyền kiểm soát ứng dụng của riêng mình, bạn có thể có giao diện linh hoạt hơn so với giao diện của Apple cung cấp trong Cài đặt.app

Đối với việc sử dụng Dữ liệu chính hoặc NSUserDefaults ... tôi sẽ nói với NSUserDefaults vì nó dễ thực hiện hơn nhiều và được thiết kế để thực hiện việc này, khi triển khai dữ liệu cốt lõi sẽ tốn nhiều công sức.

+0

Đối với bất kỳ ai tìm thấy chuỗi này trong năm 2017+, trang được liên kết ở trên không còn tồn tại . Tôi tin rằng hướng dẫn này, hiện được gọi là [Hướng dẫn lập trình tùy chọn và cài đặt] (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html), là phiên bản cập nhật. –

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