Да, это правильный способ проверить optional
, возвращает nil
ли objectForKey
метод has или любое значение, AnyObject?
которое есть Implicit optional
.
Итак, если userDefaults.objectForKey(kUSERID)
есть какое-либо значение, чем оно оценивается true
. если userDefaults.objectForKey(kUSERID)
имеет nil
значение, чем оценивается false
.
Из руководства по быстрому программированию
Операторы if и принудительное разворачивание.
Вы можете использовать оператор if, чтобы узнать, содержит ли необязательный параметр значение. Если необязательный параметр имеет значение, он принимает значение true; если он вообще не имеет значения, он принимает значение false.
Теперь в симуляторах есть ошибка, userDefaults
поэтому после установки ключа они всегда остаются установленными, независимо от того, удаляете ли вы свое приложение. Вам необходимо сбросить симулятор.
Сбросить Simulator проверить этот метод перед установкой ключа в userDefaults
или вынуть ключ userDefaults.removeObjectForKey(kUSERID)
из userDefaults
и он будет возвращать NO
.А устройство оно разрешаемая iOS8 beta4
.