![]() |
|
|
![]()
|
|
| estra |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 13.10.2008 Репутация: нет Всего: нет |
Как определить, есть ли в UserDefaults ключ или нет?
Если ключ типа NSString, то понятно
а как быть в случае, если нужно определить наличие ключа типа BOOL? |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
ключ не может быть типа бул, потому что бул это не объект
|
|||
|
||||
| estra |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 13.10.2008 Репутация: нет Всего: нет |
тогда по другому
допустим в UserDefaults записано значение следующим образом
как проверить есть ли такой ключ или нет. если делать по аналогии с первым постом
то на строчке с условием приложение "падает" наверное надо
но что оно вернет если такой ключ еще не создан? Это сообщение отредактировал(а) estra - 24.7.2012, 23:10 |
||||||
|
|||||||
| Bitter |
|
||||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Хм. Я так понял под ключем Вы имеете в виду объект, который ассоциирован с ключем... Потому что в вашем случае ключ это @"key", а никак не строка или тем более бул.
В общем когда вы вызываете метод setBool для юзердефолтса, то он заносит объект класса NSNumber, который создает так [NSNumber numberWithBool:]. Соответственно в словаре хранится объект NSnumber для ключа @"key". Далее. Если вы получаете объект по указанному ключу, то объект этот вам вернется как id. Но это в любом случае объект. Если такого ключа в словаре нет, то вам вернется nil. Кроме того не может быть ситуации когда ключ есть, а обекта для него нет, так как nil нельзя хранить в словаре. То есть если есть ключ - есть и значение, иначе вы получите nil Добавлено через 3 минуты и 15 секунд Да, кстати - определение наличия объекта вот таким образом
это чистой воды ###код, так как Вы вызываете метод length без надобности Правильная проверка такая:
P.S. не называйте переменные одной буквой, за это надо отбивать руки! |
||||
|
|||||
| estra |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 13.10.2008 Репутация: нет Всего: нет |
Спасибо за разъяснения!
1 буква, это для примера, чтобы много не писать) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | iOS | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |