Quando o rootViewController
do meu aplicativo for carregado, quero poder verificar se as credenciais de login dos usuários foram salvas ou não NSUserDefaults
.
Basicamente, quando o usuário carrega o aplicativo e não tem suas credenciais de login salvas, um modalAlertView
será enviado e o usuário poderá salvar suas credenciais de forma adequada. Isso salva essas UITextField
strings em um respectivo NSUserDefault
objeto. No entanto, é possível, que quando esse salvamento for feito, eu possa criar um NSUserDefault
objeto que é booleano e alterar o valor para sim?
O que significa que o booleano já está definido como não e quando o usuário salva suas credenciais de login, ele também muda o booleano para sim?
fonte
Existe um método em
NSUserDefaults
chamadoregisterDefaults:
. Você usa este método para definir os "padrões padrão" do seu aplicativo. Basicamente, você cria umNSDictionary
contendo suas chaves e valores padrão (no seu caso, um NÃO para uma chave de "credenciais salvas") e o registra usandoregisterDefaults:
. Isso geralmente é feito no+ (void)initialize
método do delegado do aplicativo para garantir que seus padrões sejam registrados antes de serem necessários. Esses valores são usados apenas se seu aplicativo não os substituiu. Em outras palavras, eles não serão usados a menos que a chave que você está procurando não esteja no Domínio do Aplicativo, ou seja, os padrões do usuário lidos do arquivo .plist do usuário.Por outro lado, você pode apenas verificar as credenciais de login e exibir um alerta se elas estiverem faltando. Isso elimina a necessidade de manter seu valor booleano sincronizado com as credenciais de login. Se você fornecer posteriormente um recurso de "excluir credenciais de login", não precisará se lembrar de definir o booleano de volta para NÃO. Se suas credenciais de login forem salvas nos padrões do usuário, você faria o seguinte:
fonte
Esta solução, sugerida por Henrik P. Hessel:
funcionaria no seu caso, mas tenha em mente que você não deve verificar com este código se alguma chave for definida, porque se ela realmente for definida e definida como "NÃO", você ainda obterá um resultado como se não fosse definido em tudo. Em vez disso, eu usaria
fonte
Você não precisa primeiro configurá-lo para
NO
, em vez disso, você pode verificar se uma chave foi configurada. Caso contrário, e se seu aplicativo determinar que as credenciais estão completas, basta criá-lo e defini-lo comoYES
.Verifique minha resposta a outra pergunta para ver como costumo fazer isso.
fonte
em Swift 3
alternativamente, podemos usar e
object(forKey:)
então lançá-lo em boolfonte
Swift 2.3
Para armazenar valores
Para buscar valores
Swift 3.0
Para armazenar valores
para recuperar valores
fonte