Можно ли читать настройки приложения только при запуске?

#xcode #settings.bundle #inappsettings

#xcode #настройки.пакет #неправильные настройки

Вопрос:

Я внедрил inappsettings для просмотра настроек в моем приложении, чтобы иметь возможность редактировать значения settings.bundle прямо в приложении.

Однако теперь я хотел прочитать из settings.bundle, но, прочитав руководство по программированию для iOS, я узнал, что settings.bundle следует читать при запуске приложения.

Так неужели невозможно получить доступ к этим настройкам в любое время в моем коде? Настройки Inapp не имели бы никакого смысла, если бы пользователь не мог обновлять настройки в любое время во время работы приложения.

Inappsettings предлагает метод InAppSettings registerDefaults

 - (void)initialize{
    if([self class] == [AppDelegate class]){
        [InAppSettings registerDefaults];
    }
}
  

Но я не уверен, что это позволяет читать настройки в любое время. Есть предложения?

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

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

Ответ №1:

Очевидно, Apple хочет навязать нам парадигму пользовательского интерфейса внешних настроек. Пожалуйста, вспомните, как работает Mail.app. Иногда эта парадигма имеет смысл, иногда нет. Если у вас установлены неизменяемые настройки, вам не нужно думать об обработке событий onPrefferenceChange, параллелизме, синхронизации, проблемах резервного копирования и репликации ОС и т.д… Однако возможности, предоставляемые Apple, очень ограничены в том, что они могут делать. Вы даже не можете ввести там произвольную строку (Mail.app явно использует для этого какой-то частный API). Итак, вам нужно сделать выбор, можете ли вы использовать то, что предлагает Apple, или внедрить свою собственную систему предпочтений (может быть, основанную поверх NSUSerDefaults или чего-то еще). Однажды я внедрил свой собственный и с тех пор использую его. Я предпочитаю иметь реальную систему настроек в приложении. Главное преимущество этого заключается в возможности изменять его значение, не выходя из приложения.

Комментарии:

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

2. Я переключил настройки формы на InAppSettingsKit и теперь могу читать пользовательские настройки по умолчанию в любое время.