2011-02-03 28 views
5

Apple cung cấp tài liệu để quản lý tùy chọn người dùng thông qua cả hai Core FoundationFoundation Kit. Nó cũng không cung cấp bất kỳ sự trợ giúp nào với việc chọn lựa một hoặc một điều khác, ngoại trừ việc nói rằng chúng thực sự khác nhau ("không phải là cầu nối miễn phí").NSUserDefaults vs CFPreferences, những gì cần xem xét

Vì vậy, tôi quan tâm, có điều gì tôi nên cân nhắc chọn cơ chế cấu hình cho ứng dụng không? Hay tôi chỉ cần tung một đồng xu?

Cảm ơn!

Trả lời

4

Bạn được yêu cầu sử dụng NSUserDefaults, đây hoàn toàn là lựa chọn mặc định. Tôi cho rằng bạn có thể sử dụng CFPreferences, nhưng trừ khi bạn có lý do chính đáng để thực hiện lựa chọn đó, tôi sẽ tránh xa CF -API.

+0

Tôi không tình cờ gặp phải 'CFPreferences', những chức năng này được sử dụng trong một số hướng dẫn táo, ví dụ: [this one] (http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/PreferencePanes/Tasks/Sample.html#//apple_ref/doc/uid/20000710-BABFCABJ). Nhưng cảm ơn cho đầu vào, tôi đã tìm cách nghe từ ai đó với kinh nghiệm. –

+4

Ngoài ra, có lý do cụ thể nào để * tránh xa các CF-APIs * không? –

+4

@Nikita Rybak: Chúng thường khó sử dụng hơn (ít nhất là vì không có sẵn cách dễ dàng để tự động phát hiện đối tượng CF). CFPreferences đặc biệt được thiết kế để cho phép bạn làm việc với bất kỳ sở thích của ứng dụng, không chỉ riêng của ứng dụng của bạn, và cho rằng, nó thực sự dễ dàng hơn. Để làm việc với các prefs của riêng bạn, NSUserDefaults dễ dàng hơn, vì vậy bạn nên sử dụng nó vì lý do đó. –

0

NSUserDefaultults đọc và ghi vào phạm vi người dùng, trong khi CFPreferences hỗ trợ viết cho cả phạm vi người dùng và phạm vi máy. Bạn có thể sử dụng CFPreferences cho một thiết lập máy khôn ngoan có thể được áp dụng cho tất cả người dùng sử dụng ứng dụng trên cùng một máy.

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