2011-02-03 10 views
5

Firma Apple udostępnia dokumentację do zarządzania ustawieniami użytkownika za pośrednictwem Core Foundation i Foundation Kit. Nie oferuje też żadnej pomocy przy wyborze jednego lub drugiego, z wyjątkiem stwierdzenia, że ​​są one rzeczywiście różne ("brak połączenia bez opłat").NSUserDefaults vs CFPreferences, co wziąć pod uwagę

Tak, jestem zainteresowany, czy jest coś, co powinienem rozważyć wybierając mechanizm konfiguracji dla aplikacji? A może powinienem rzucić monetą?

Dzięki!

Odpowiedz

4

Powinieneś użyć NSUserDefaults, co jest absolutnie domyślnym wyborem. Przypuszczam, że mógłbyś użyć CFPreferences, ale jeśli nie miałeś dobrego powodu, aby dokonać tego wyboru, omijałbym APAP-y o numerach CF.

+0

Nie natknąłem się na "CFPreferences" przypadkowo, te funkcje są używane w kilku samouczkach Apple, np. [ten] (http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/PreferencePanes/Tasks/Sample.html#//apple_ref/doc/uid/20000710-BABFCABJ). Ale dziękuję za wkład, chciałam usłyszeć od kogoś z doświadczeniem. –

+4

Czy istnieje jakiś szczególny powód, aby * omijać CF-API *? –

+4

@Nikita Rybak: Są zwykle trudniejsze w użyciu (przynajmniej dlatego, że nie ma wbudowanego łatwego sposobu autoreakcji obiektów CF). Interfejsy CFPreferences zostały opracowane specjalnie w celu umożliwienia pracy z dowolnymi preferencjami aplikacji, a nie tylko własnymi, i w rzeczywistości jest to łatwiejsze. W przypadku pracy z własnymi pref, NSUserDefaults jest łatwiejszy, więc powinieneś go użyć z tego powodu. –

0

NSUserDefaults odczytuje i zapisuje do zakresu użytkownika, podczas gdy CFPreferences obsługuje zapisywanie zarówno do zakresu użytkownika, jak i zakresu maszyny. Możesz użyć CFPreferences do ustawienia maszynowego, które można zastosować do wszystkich użytkowników korzystających z aplikacji na tym samym komputerze.

Powiązane problemy