Introduction and use of NSUserDefaults API in both Chinese and English documents
Overview
The NSUserDefaults class provides a programmatic interface for interacting with the defaults system. the defaults system allows an application to customize its behavior to match a user's preferences. for example, you can allow users to determine what units of measurement your application displays or how often tables ENTs are automatically saved. applications record such preferences by assigning values to a set of parameters in a user's ults database. the parameters are referred to as defaults since they're commonly used to determine an application's default state at startup or the way it acts by default.
At runtime, you use anNSUserDefaults object to read the defaults that your application uses from a user's defaults database. NSUserDefaults caches the information to avoid having to open the user's defaults database each time you need a default value. thesynchronize method, which is automatically invoked at periodic intervals, keeps the in-memory cache in sync with a user's ults database.
The NSUserDefaults class provides convenience methods for accessing common types such as floats, doubles, integers, Booleans, and URLs. A default object must be a property list, that is, an instance of (or for collections a combination of instances of): NSData, NSString, NSNumber, NSDate, NSArray, orNSDictionary. if you want to store any other type of object, you should typically archive it to create an instance ofNSData. for more details, seePreferences and Settings Programming Guide.
Values returned fromNSUserDefaults are immutable, even if you set a mutable object as the value. for example, if you set a mutable string as the value for "MyStringDefault", the string you later retrieve using stringForKey: will be immutable.
A defaults database is created automatically for each user. theNSUserDefaults class does not currently support per-host preferences. to do this, you must use the CFPreferences API (seePreferences Utilities Reference ). however, NSUserDefaults correctly reads per-host preferences, so you can safely mix CFPreferences code withNSUserDefaults code.
If your application supports managed environments, you can use anNSUserDefaults object to determine which preferences are managed by an administrator for the benefit of the user. managed environments correspond to computer labs or classrooms where an administrator or teacher may want to configure the systems in a participant way. in these situations, the teacher can establish a set of default preferences and force those preferences on users. if a preference is managed in this manner, applications shocould prevent users from editing that preference by disabling any appropriate controls.
The NSUserDefaults class is thread-safe.
Tasks
Getting the Shared NSUserDefaults Instance