Приложение для iPhone Настройки пользователя - какой подход рекомендуется? - PullRequest
0 голосов
/ 14 января 2011

Я влюблен в основные данные за последние несколько месяцев и использовал их для сохранения данных в моем приложении, включая пользовательские настройки. это прекрасно работает, но я боюсь, что у меня будут проблемы с будущими обновлениями.

я знаю 3 способа сохранить настройки в моем приложении - 1. основные данные. 2. NSUserDefaults. 3. используя встроенный компонент настроек.

люблю понимать плюсы и минусы этого подхода.

спасибо Шани

1 Ответ

4 голосов
/ 14 января 2011

Редактировать заметку: Моя предыдущая ссылка, Реализация настроек приложения , не работает. Остальная часть этого ответа все еще должна применяться. Однако теперь вы также можете хранить данные в iCloud способом, аналогичным (но отдельному от) NSUserDefaults.

Вы можете обратиться к собственному руководству Apple: О настройках и настройках

Во-первых, вы можете сохранять настройки по своему усмотрению: это просто пользовательские данные. Выбор между NSUserDefaults и Core Data только между API, где первый разработан специально для обработки пользовательских предпочтений. Но вы могли бы (технически) использовать INI-файлы, если бы вы абсолютно этого хотели (но не!). Так что есть более 3 способов сделать это.

Во-вторых, NSUserDefaults и «встроенный компонент настроек» действительно одно и то же. При использовании приложения настроек все еще сохраняются настройки в NSUserDefaults, к которым вы обращаетесь в своем приложении с помощью этого API.

Причина, по которой вы можете не хотеть использовать встроенное приложение настроек, заключается в следующем: пользователям неудобно изменять эти настройки. Если у вас есть настройки, которые пользователи могут захотеть часто менять, вы можете сделать это внутри своего приложения (например, включить / выключить музыку, изменить имя игрока). Кроме того, поскольку у вас есть полный контроль над собственным приложением, вы можете иметь более гибкий графический интерфейс, чем тот, который Apple предоставляет в Settings.app

Но это действительно вопрос графического интерфейса, а не того, как хранятся настройки.

Что касается использования Core Data или NSUserDefaults ... ну, как я уже сказал, один разработан специально для пользовательских предпочтений, другой - для пользовательских данных на основе строк. NSUserDefaults позволяет вам иметь настройки по умолчанию, тривиально добавлять новые настройки и поддерживает встроенную систему настроек. Это также довольно просто: он просто загружает список свойств. Базовые данные, с другой стороны, требуют всего постоянного хранилища и стека контекста управляемого объекта.

Подводя итог: используйте NSUserDefaults для настроек и выбирайте между встроенным приложением настроек и наличием собственной панели управления в зависимости от того, как часто нужно менять настройки, и ваших конкретных потребностей.

...