Редактировать заметку: Моя предыдущая ссылка, Реализация настроек приложения , не работает. Остальная часть этого ответа все еще должна применяться. Однако теперь вы также можете хранить данные в iCloud способом, аналогичным (но отдельному от) NSUserDefaults
.
Вы можете обратиться к собственному руководству Apple: О настройках и настройках
Во-первых, вы можете сохранять настройки по своему усмотрению: это просто пользовательские данные. Выбор между NSUserDefaults и Core Data только между API, где первый разработан специально для обработки пользовательских предпочтений. Но вы могли бы (технически) использовать INI-файлы, если бы вы абсолютно этого хотели (но не!). Так что есть более 3 способов сделать это.
Во-вторых, NSUserDefaults и «встроенный компонент настроек» действительно одно и то же. При использовании приложения настроек все еще сохраняются настройки в NSUserDefaults, к которым вы обращаетесь в своем приложении с помощью этого API.
Причина, по которой вы можете не хотеть использовать встроенное приложение настроек, заключается в следующем: пользователям неудобно изменять эти настройки. Если у вас есть настройки, которые пользователи могут захотеть часто менять, вы можете сделать это внутри своего приложения (например, включить / выключить музыку, изменить имя игрока). Кроме того, поскольку у вас есть полный контроль над собственным приложением, вы можете иметь более гибкий графический интерфейс, чем тот, который Apple предоставляет в Settings.app
Но это действительно вопрос графического интерфейса, а не того, как хранятся настройки.
Что касается использования Core Data или NSUserDefaults ... ну, как я уже сказал, один разработан специально для пользовательских предпочтений, другой - для пользовательских данных на основе строк. NSUserDefaults позволяет вам иметь настройки по умолчанию, тривиально добавлять новые настройки и поддерживает встроенную систему настроек. Это также довольно просто: он просто загружает список свойств. Базовые данные, с другой стороны, требуют всего постоянного хранилища и стека контекста управляемого объекта.
Подводя итог: используйте NSUserDefaults для настроек и выбирайте между встроенным приложением настроек и наличием собственной панели управления в зависимости от того, как часто нужно менять настройки, и ваших конкретных потребностей.