Pergunta

o NSUserDefaults A documentação da API tem o boolForKey: mensagem que é descrita assim -

boolForKey:

Retorna o valor booleano associado à chave especificada.

- (BOOL)boolForKey:(NSString *)defaultName

Valor de retorno Se um valor booleano estiver associado ao padrão padrão nos padrões do usuário, esse valor será retornado. Caso contrário, não é devolvido.

Dado que um [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"] devolver um não, pode ser porque a chave não existe ou a chave existe e tem um boolean valor no. Como podemos diferenciar? A partir de agora, só posso evitar entrar nessa situação em primeiro lugar.

Foi útil?

Solução

Você está usando os padrões do usuário incorretamente. No lançamento do seu aplicativo, você deve ligar -[NSUserDefaults registerDefaults:] com um dicionário que contém os valores padrão para todas as preferências.

Então, se o usuário não definiu uma preferência, -boolForKey retornará o valor padrão.

Outras dicas

Use o -objectForKey: método também. Isso lhe dirá se a chave existe.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top