NSUserDefaults setValue: удаляет мой plist.Что происходит? - PullRequest
0 голосов
/ 21 октября 2011

Каким-то образом приведенный ниже код, похоже, удаляет мой ~/Library/Preferences/NAME.PRODUCT.plist

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setValue:NO forKey:@"ViewFirstShown"];
    [defaults synchronize];

Я могу подтвердить, что файл plist существует до вызова этих строк.Но файл plist исчезает сразу после запуска вышеуказанных кодов.

Я думал, synchronise записывает значения в disk немедленно.Я тоже пытался немного подождать, но список просто не появляется.

Я что-то упустил?

Заранее спасибо.

1 Ответ

1 голос
/ 21 октября 2011

Недостаточно информации, чтобы действительно ответить на ваш вопрос здесь.

Является ли клавиша "ViewFirstShown" единственным ключом в списке настроек во время выполнения кода выше?Если это так, то вызов -setValue:forKey: удаляет последний ключ в prefs, что удалит список параметров.

Еще одна вещь, которую стоит отметить, это то, что вы используете -[NSUserDefaults setValue:forKey:], что занимает id для значения.Потому что NO равно 0L, а это фактически nil, вы удаляете любое значение, которое здесь есть.Вы, вероятно, хотите использовать -[NSUserDefaults setBool:forKey:] вместо.

...