Ответил на мой собственный вопрос: вы действительно можете использовать NSUserDefaults для сохранения ваших собственных настроек приложений без необходимости интеграции с настройками системы.
Например, мое приложение представляет собой приложение Utility с небольшим пользовательским интерфейсом для пары настроек на панели FlipSide (вид, который пользователь получает при нажатии кнопки «i»).
Обратите внимание, что я нашел эту информацию из двух источников.
В большой серии отчетов от iPhone BootCamp Скотт Леберкнайт мимоходом упоминает, что его учили, что пользовательские настройки приложения по умолчанию могут или не могут интегрироваться в приложение настроек.
Образец кода со страницы официального разработчика iphone для BubbleLevel использует настройки для хранения калибровки уровня (который задается в режиме обратного обзора)
Вот методы в LevelAppDelegate.m, которые загружают предпочтение при запуске приложения и сохраняют его при завершении:
// Invoked after the application has been launched and initialized but before it has received its first event.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Set up the level view controller
levelViewController = [[LevelViewController alloc] init];
[window addSubview:levelViewController.view];
// Restore calibration for device
float restoredOffset = [[NSUserDefaults standardUserDefaults] floatForKey:BubbleLevelCalibrationOffsetKey];
levelViewController.calibrationOffset = restoredOffset;
}
// Invoked immediately before the application terminates.
- (void)applicationWillTerminate:(UIApplication *)application {
float calibrationOffset = levelViewController.calibrationOffset;
NSNumber *offset = [NSNumber numberWithFloat:calibrationOffset];
[[NSUserDefaults standardUserDefaults] setObject:offset forKey:BubbleLevelCalibrationOffsetKey];
}
Полагаю, однако, что правильный ответ на оригинальный вопрос:
Нет - вы не можете запустить пользовательский интерфейс настроек из своего собственного приложения (я не видел никакого способа сделать это - я могу ошибаться - но я вполне уверен, что даже если бы вы могли запустить В настройках вашего приложения, например, можно использовать URL-адрес для запуска Safari - вы не сможете вернуть своему приложению из приложения «Настройки», что не поможет этой цели).
Для сохранения уровня предпочтения (в отличие от данных приложения, сохраняемых в документах, базе данных или кэше), у вас есть 2 варианта
я) использовать приложение системных настроек для редактирования
II) создать свои собственные элементы управления в вашем приложении
В любом случае вы можете использовать NSUserDefaults для фактического сохранения.