невозможно сохранить переменную bool с помощью NSUserDefaults - PullRequest
2 голосов
/ 27 января 2012

Я использую XCode4.2 и разрабатываю приложение для iPhone

Обычно я сохраняю данные, используя NSUserdefaults (в основном строки ...)

Обычно я пишу следующие две строки для сохраненияданные:

historyvar=[NSUserDefaults standardUserDefaults];
[historyvar setObject:boolVar forKey:@"bool"];

Я пытаюсь сохранить переменную BOOL, но при этом у меня появляется красная ошибка:

Implicit converstion of'BOOL' (aka 'signed char') to 'id' is disallowed with ARC

, и я получаю предупреждение (желтая ошибка)

несовместимое преобразование целочисленного значения в указатель, отправляющее 'BOOL' (он же 'знаковый символ') в параметры типа 'id'

Есть ли что-нибудь эквивалентное NSUserDefaults для переменных Bool?спасибо

1 Ответ

10 голосов
/ 27 января 2012

Существует -setBool: forKey: метод NSUserDefaults.

[[NSUserDefaults standardUserDefaults] setBool:boolValue forKey:@"bool"];

, и тогда вы сможете получить фактическое возвращаемое значение BOOL, например:

BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"bool"];

Таким образом, вам не нужно связываться с NSNumbers.

...