Você deve sempre usar o Keychain para armazenar nomes de usuário e senhas e, como ele é armazenado de forma segura e acessível apenas ao seu aplicativo, não há necessidade de excluí-lo quando o aplicativo é encerrado (se essa era sua preocupação).
A Apple fornece um código de amostra que armazena, lê e exclui itens de chaveiro e eis como usar a classe de wrapper de chaveiro dessa amostra, o que simplifica bastante o uso de chaveiro.
Inclua Security.framework (no Xcode 3, clique com o botão direito do mouse na pasta frameworks e adicione a estrutura existente. No Xcode 4, selecione seu projeto, selecione o destino, vá para a guia Build Phases e clique em + em Link Binary With Files) e KeychainItemWrapper .h &. m no seu projeto, # importe o arquivo .h onde quer que você precise usar as chaves e, em seguida, crie uma instância desta classe:
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];
( YourAppLogin pode ser qualquer coisa que você escolher para chamar seu item Keychain e você pode ter vários itens, se necessário)
Em seguida, você pode definir o nome de usuário e a senha usando:
[keychainItem setObject:@"password you are saving" forKey:kSecValueData];
[keychainItem setObject:@"username you are saving" forKey:kSecAttrAccount];
Obtenha-os usando:
NSString *password = [keychainItem objectForKey:kSecValueData];
NSString *username = [keychainItem objectForKey:kSecAttrAccount];
Ou exclua-os usando:
[keychainItem resetKeychainItem];