Попробуйте использовать метод synchronize
.
Обновление : вам следует рассмотреть возможность регистрации значений по умолчанию, как это предлагается в Руководство по программированию предпочтений и настроек :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Register the preference defaults early.
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:@"CacheDataAgressively"];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
// Other initialization...
}
Кроме того, из этого руководства («Синхронизация и обнаружение изменений предпочтений»), касающегося синхронизации:
Чтобы обнаружить, когда происходят изменения в значении предпочтения, приложения также могут зарегистрироваться дляуведомление NSUserDefaultsDidChangeNotification.Общий объект NSUserDefaults отправляет это уведомление вашему приложению всякий раз, когда он обнаруживает изменение в предпочтении, расположенном в одном из постоянных доменов.Вы можете использовать это уведомление для ответа на изменения, которые могут повлиять на ваш пользовательский интерфейс.Например, вы можете использовать его, чтобы обнаружить изменения в предпочитаемом языке пользователя и соответствующим образом обновить содержимое вашего приложения.
Уверен, вам все еще нужно использовать synchronize
, если вы хотите перечитать настройки напрямую.