Предпочтения
Предпочтения являются настройками, которые приложение определяет для себя (часто как значения по умолчанию) или тот, пользователи выбирают для приложения. Например, текстовый редактор мог бы иметь настройки для стандартного шрифта, автоматическую проверку правописания и сохраняющуюся автоматически частоту. Предпочтения зарегистрированы в репозитории или указанных пользователями настроек по умолчанию, известных как пользовательские значения по умолчанию (или предпочтения) система. Ваше приложение пишет пользовательские настройки, в форме пар ключ/значение, к пользовательской системе значений по умолчанию и читает предпочтения из него. Значения должны быть объектами списка свойств. Вы пишете и читаете пользовательские настройки в и от пользовательской системы значений по умолчанию вызывающими методами NSUserDefaults
класс или функции Предпочтительных Утилит (CFPreference). Предпочтения являются не обязательно конфигурируемым пользователем; например, приложение может использовать пользовательскую систему значений по умолчанию, чтобы хранить информацию состояния.
Каждая пользовательская настройка принадлежит домену и пользователю
Когда Вы пишете пользовательскую настройку в пользовательскую систему значений по умолчанию, это помещает его в домен, отражающий объем предпочтения. Например, существует домен для специализированных значений по умолчанию и другой для значений по умолчанию, применяющихся ко всем приложениям (NSGlobalDomain
). Несмотря на то, что предпочтения в этих доменах являются персистентными через запуски приложения, предпочтения в некоторых доменах существуют только, в то время как работает приложение.
Пользовательские настройки также связаны с определенным пользователем. Таким образом можно смотреть на предпочтение «запись» в репозитории пользовательских значений по умолчанию, как структурируемом на трех уровнях: первый пользователь, затем домен (обычно глобальная переменная или на приложение), и затем пары ключ/значение в каждом домене. Корневой объект для объединенных предпочтений пользователя является словарем, в котором, для специализированных доменов, ключи являются идентификаторами пакета приложений.
Предпочтения записаны в файлы, названные с идентификатором и наличием пакета приложения расширения plist
. В iOS файлы расположены в специальном расположении песочницы приложения; в OS X предпочтительные файлы расположены в Library/Preferences
в корневом каталоге пользователя.
Ваше приложение должно представить пользовательский интерфейс для выбора предпочтений
Прежде чем Ваше приложение может сохранить конфигурируемые пользователем предпочтения в пользовательской системе значений по умолчанию, оно должно представить пользовательский интерфейс для выбора тех предпочтений. На OS X это влечет за собой разработку предпочтительной панели, которую пользователь выводит на экран путем выбора Preferences из меню приложения. Приложение ответственно за запись настроек, которые пользователь предоставляет к пользовательской системе значений по умолчанию.
В iOS подход более детален. Приложения имеют два выбора для отображения пользовательских настроек.
В отдельном предпочтительном представлении. Приложения, имеющие только несколько опций или опций, которые, вероятно, будут часто изменяться — например, отключающее звук звука управление для игры — представили бы те опции в поле зрения, который представляет средства управления для изменения значений опции.
В предоставленном системой приложении Настроек. Предпочтительные опции, которые пользователи, вероятно, установят один раз и редко изменять после того, должны появиться вместо этого в приложении Настроек, предоставленном операционной системой.
Для интеграции установок приложения в приложение Настроек необходимо включать специально отформатированный пакет настроек в каталог верхнего уровня комплекта приложений. Этот пакет настроек предоставляет информацию о Ваших установках приложения к приложению Настроек, которое тогда ответственно за отображение тех предпочтений и обновление системы пользовательских значений по умолчанию с любыми предоставленными пользователями значениями.
Во время выполнения Ваше приложение получает предпочтения в пользовательской системе значений по умолчанию с помощью NSUserDefaults
или CFPreference APIs.
Средства в OS X для пользовательских значений по умолчанию
OS X дает Вам два средства, чтобы помочь Вам интегрировать пользовательские настройки приложения с пользовательской системой значений по умолчанию:
Привязка какао.
NSUserDefaultsController
объекты являются объектами контроллера, позволяющими Вам связывать элементы пользовательского интерфейса своего приложения к парам ключ/значение в пользовательской системе значений по умолчанию.Доступ командной строки. В OS X можно работать
defaults
программа командной строки как полезное средство отладки. Это позволяет Вам читать и писать записи в пользовательской системе значений по умолчанию, и это также позволяет Вам искать определенные предпочтительные записи, переименовать их и удалить их.