Подтвердить что ты не робот

NSUserDefaults boolforKey ограничение по дизайну?

Документация API NSUserDefaults имеет сообщение boolForKey:, которое описывается следующим образом:

boolForKey:

Возвращает логическое значение, связанное с указанным ключом.

- (BOOL)boolForKey:(NSString *)defaultName

Возвращаемое значение Если логическое значение связано с именем по умолчанию в пользовательских значениях по умолчанию, это значение возвращается. В противном случае возвращается NO.

Учитывая, что a [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"] возвращает NO, это может быть либо потому, что ключ не существует, либо существует ключ и имеет значение boolean NO. Как мы можем дифференцироваться? На данный момент я могу только избежать попадания в эту ситуацию в первую очередь.

4b9b3361

Ответ 1

Вы неправильно используете пользовательские значения по умолчанию. При запуске приложения вы должны называть -[NSUserDefaults registerDefaults:] со словарем, который содержит значения по умолчанию для всех настроек.

Затем, если пользователь не установил предпочтения, -boolForKey вернет значение по умолчанию.

Ответ 2

Используйте метод -objectForKey:. Это скажет вам, существует ли ключ.