#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 и теперь могу читать пользовательские настройки по умолчанию в любое время.