About Preferences and Settings
Explains how to use the Cocoa defaults system to create and save user preferences.
At a Glance
Apps integrate preferences in several ways, including programmatically at various points throughout your code and as part of the user interface. Preferences are supported in both iOS and Mac apps.
You Decide What Preferences You Want to Expose
Preferences are different for each app, and it is up to you to decide what parts of your app you want to make configurable. Configuration involves checking the value of a stored preference from your code and taking action based on that value. Thus, the preference value itself should always be simple and have a specific meaning that is then implemented by your app.
Relevant section: What Makes a Good Preference?
Apps Provide Their Own Preferences Interface
Because each app’s preferences are different, the app itself is responsible for deciding how best to present those preferences to the user, if at all. Both iOS and OS X provide some standard places for you to incorporate a preferences interface, but you are still responsible for designing that interface and displaying it at the appropriate time.
Relevant section: Providing a Preference Interface
Apps Access Preferences Using the User Defaults Object
Apps access locally stored preferences using a user defaults object, which is either an NSUserDefaults object (iOS and OS X) or an NSUserDefaultsController object (OS X only). In addition to retrieving preference values, apps can use this object to register default values for preferences and manage other aspects of the preferences system.
Relevant chapter: Accessing Preference Values
iCloud Stores Shared Preference and Configuration Data
Apps that support iCloud can put some of their preference data in the user’s iCloud account and make it available to instances of the app running on the user’s other devices. You use this capability to supplement (not replace) your app’s existing preferences data and provide a more coherent experience across the user’s devices. For example, a magazine app might store information about the page number and issue last read by the user so that the app running on a different device can show that same page.
Relevant chapter: Storing Preferences in iCloud
Defaults Are Grouped into Domains in OS X
OS X preferences are grouped by domains so that system preferences can be differentiated from app preferences. Splitting preferences in this manner lets the user specify some preferences globally and then override one or more of those preferences inside an app.
Relevant section: The Organization of Preferences
A Settings Bundle Manages Preferences for iOS Apps
An iOS, apps can display preferences from the Settings app, which is a good place to put preferences that the user does not need to configure frequently. To display preferences in the Settings app, an app’s bundle must include a special resource called a Settings bundle that defines the preferences to display, the proper way to display them, and the information needed to record the user’s selections.
Note: Apps are not required to use a Settings bundle to manage all preferences. For preferences that the user is likely to change frequently, the app can display its own custom interface for managing those preferences.
Relevant chapter: Implementing an iOS Settings Bundle
See Also
For information about property lists, see Property List Programming Guide .
For more advanced information about using Core Foundation to manage preferences, see Preferences Programming Topics for Core Foundation .
Next
Copyright © 2013 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2013-10-22