2011-02-03 13 views
5

पर विचार करना है Apple Core Foundation और Foundation Kit दोनों के माध्यम से उपयोगकर्ता वरीयताओं के प्रबंधन के लिए प्रलेखन प्रदान करता है। यह एक या दूसरे को चुनने में कोई मदद नहीं देता है, यह बताते हुए कि वे वास्तव में अलग हैं ("टोल-फ्री ब्रिज नहीं")।NSUserDefaults बनाम CFPreferences,

तो, मुझे दिलचस्पी है, क्या मुझे कुछ भी है जो मुझे आवेदन के लिए कॉन्फ़िगरेशन तंत्र का चयन करने पर विचार करना चाहिए? या मुझे बस एक सिक्का टॉस करना चाहिए?

धन्यवाद!

उत्तर

4

आपको NSUserDefaults का उपयोग करना चाहिए, जो बिल्कुल डिफ़ॉल्ट विकल्प है। मुझे लगता है कि आप CFPreferences का उपयोग कर सकते हैं, लेकिन जब तक कि आपको यह विकल्प बनाने का कोई अच्छा कारण न हो, मैं CF -APIs को साफ़ कर दूंगा।

+0

मैं गलती से 'CFPreferences' पर ठोकर नहीं लगा, उन कार्यों का उपयोग कई सेब ट्यूटोरियल में किया जाता है, उदा। [यह एक] (http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/PreferencePanes/Tasks/Sample.html#//apple_ref/doc/uid/20000710-BABFCABJ)। लेकिन इनपुट के लिए धन्यवाद, मैं अनुभव से किसी से सुनना चाहता था। –

+4

इसके अलावा, क्या सीएफ-एपीआई * के स्पष्ट होने के लिए कोई विशेष कारण है? –

+4

@ निकिता Rybak: वे आमतौर पर उपयोग करने के लिए कठिन हैं (कम से कम क्योंकि ऑटोरेक्लीज सीएफ वस्तुओं के लिए कोई आसान तरीका नहीं है)। CFPreferences विशेष रूप से आपको किसी भी एप्लिकेशन की वरीयताओं के साथ काम करने में सक्षम बनाने के लिए डिज़ाइन किया गया है, न केवल आपके लिए, और इसके लिए, यह वास्तव में आसान है। अपने स्वयं के prefs के साथ काम करने के लिए, NSUserDefaults आसान है, इसलिए आपको उस कारण से इसका उपयोग करना चाहिए। –

0

NSUserDefaults उपयोगकर्ता के दायरे को पढ़ता है और लिखता है, जबकि CFPreferences उपयोगकर्ता स्कोप और मशीन स्कोप दोनों को लिखने का समर्थन करता है। आप मशीन-वार सेटिंग के लिए CFPreferences का उपयोग कर सकते हैं जिसे उसी मशीन पर एप्लिकेशन का उपयोग करके सभी उपयोगकर्ताओं पर लागू किया जा सकता है।

संबंधित मुद्दे