Sim este é o caminho certo para verificar a optionaltem nilou qualquer valor objectForKeymétodo retorna AnyObject?o que é Implicit optional.
Portanto, se userDefaults.objectForKey(kUSERID)tiver algum valor do que avalia true. se userDefaults.objectForKey(kUSERID)tem nilvalor do que avalia false.
Do guia de programação rápida
Instruções If e desembrulhamento forçado
Você pode usar uma instrução if para descobrir se um opcional contém um valor. Se um opcional tiver um valor, ele será avaliado como verdadeiro; se não tiver nenhum valor, será avaliado como falso.
Agora, há um bug nos simuladores que depois de definir a chave, userDefaultseles sempre permanecem definidos, não importa se você exclua seu aplicativo.
Redefinir sua Simulator verificar este método antes de definir chave na userDefaultsou remova a chave userDefaults.removeObjectForKey(kUSERID)de userDefaults
e ele irá retornar NOdispositivos .No que seja resolvido em iOS8 beta4.