managedObjectContext, кажется, удаляет мой NSUserDefault - PullRequest
1 голос
/ 10 мая 2011

сохранение управляемогоObjectContext, кажется, съедает NSUserDefault

NSString *defaultSiteUrl = [[NSUserDefaults standardUserDefaults] objectForKey:kSelectedSiteUrlKey];
NSLog(@"the default site url is: %@", defaultSiteUrl);

if (![[managedObjectContext] save:&error]) {
    NSLog(@"Error saving entity: %@", [error localizedDescription]);
}

NSString *defaultSiteUrl2 = [[NSUserDefaults standardUserDefaults] objectForKey:kSelectedSiteUrlKey];
NSLog(@" the default site url is: %@", defaultSiteUrl2);

Результат в консоли:

2011-05-10 15:26:40.710 Moodle[44566:207] the default site url is: http://jerome.moodle.local/~jerome/Moodle_iPhone
2011-05-10 15:26:40.717 Moodle[44566:207] the default site url is: (null)

Что может вызвать эту проблему? Каким образом NSUserDefaults связан с ManagedObjectContext?

Примечание:

  • Чтобы вы знали мое приложение: я разрабатываю приложение Moodle. Этот фрагмент кода находится на экране со списком курсов. Я использую [[NSUserDefaults standardUserDefaults] синхронизация], когда я устанавливаю пользовательскую настройку по умолчанию на экране «Настройки сайта». Так что я думаю, что это хорошо сохранено

  • Кусок кода работает (пользовательские настройки по умолчанию не удаляются с помощью команды «save manageObjectContext»), если я перезапускаю симулятор перед переходом на экран списка курсов сразу после установки пользовательского значения по умолчанию.

1 Ответ

2 голосов
/ 23 мая 2011

Вы должны инициализировать значение NSUserDefaults с помощью [NSUserDefaults registerDefaults: appDefaults], использование метода синхронизации для instiliaztioan может уничтожить ваши пользовательские настройки по умолчанию, ПРИМЕЧАНИЕ. это не имеет ничего общего с основными данными .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...