NSUserDefaults перезаписывает новые значения старыми - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть набор значений userdefaults, которые я использую для загрузки своего UITableView в

-(void) prepareDisplay
{
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

    table.dataSourceArray = [standardUserDefaults objectForKey:@"dataSource"];

}

- (void) метод viewDidLoad {

 [self prepareDisplay];

}

и до этого момента он работал нормально.

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

  • метод prepareDisplay ().

Здесь я думаю, что экземпляр userdefaults, который я создал в моем viewDidLoad ранее, перезаписывает или портит мое значение userdefaults, и он снова вызывает старые значения, а не вновь установленное значение. Моё новое значение userdefaults перезаписывается с помощью старые ценности. Я проверил файл plist в изолированной программной среде приложения после того, как произвел сброс настроек по умолчанию, и значения отображаются правильно. Но позже я не знаю, как и когда они перезаписываются старыми значениями. Я уверен, что я ничего не делаю явно, чтобы испортить их после сброса.

Может ли кто-нибудь помочь. Спасибо

1 Ответ

1 голос
/ 21 апреля 2011

На самом деле вам не нужна переменная экземпляра для NSUserDefaults, потому что это объект-одиночка.Избегай это.Кроме того, вы можете проверить метод - (BOOL)synchronize того же объекта, который записывает любые изменения в постоянные домены на диск и обновляет все неизмененные постоянные домены на то, что находится на диске.

...