User Defaults
User defaults
is another
term for user
application preferences. Mac OS X
has a well-designed user defaults system that is accessed in Cocoa
through the Foundation class
NSUserDefaults
. Working with
NSUserDefaults is similar to working with an
NSDictionary. Default values are stored in the
database by keys that the application developer defines in the
application. The defaults database is actually a collection of
property list files; every application has its own property list file
where defaults are stored. You can view these files in
~/Library/Preferences.
Defaults are organized into
domains
,
which are groupings of default values that have varying degrees of
visibility to applications. A domain is either
persistent
or
volatile
.
Defaults in a persistent domain are stored in the
defaults database, while defaults in a volatile domain are applicable only
during the lifetime of the NSUserDefaults object
that contains those values. NSUserDefaults has
five standard domains:
-
NSArgumentDomain Set values for defaults in the argument domain by passing key-value pairs to the application as arguments on the command line, (e.g.,
% MyApp -KeyNameValue). The argument domain is volatile, so arguments affect the application only during the application session for which they were specified.- Application
Application-specific defaults are stored here and kept persistently in the user’s defaults database.
-
NSGlobalDomain Defaults stored in the global domain are applicable to all applications ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access