iOS: как сохранить имя пользователя / пароль в приложении? - PullRequest
271 голосов
/ 07 августа 2011

У меня есть экран входа в мое приложение для iOS. Имя пользователя и пароль будут сохранены в NSUserDefaults и снова загружены в экран входа в систему при повторном входе в приложение (конечно, NSUserDefaults являются постоянными).

Теперь у пользователя есть возможность отключить функцию сохранения имени пользователя / пароля.

Таким образом, NSUserDefaults будет очищено.

Но в моем приложении мне нужно это имя пользователя / пароль для запросов к базе данных для пользователя. Итак: Где хранить данные кроме NSUserDefaults? (Это место можно / нужно удалить, когда пользователь выйдет из приложения или выйдет из системы).

Ответы [ 14 ]

2 голосов
/ 28 ноября 2013

попробуйте это:

 KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];
[keychainItem setObject:@"password you are saving" forKey:kSecValueData]; 
[keychainItem setObject:@"username you are saving" forKey:kSecAttrAccount];

может это поможет.

1 голос
/ 16 ноября 2016

Для Swift вы можете использовать эту библиотеку:

https://github.com/jrendel/SwiftKeychainWrapper

Поддерживает все версии swift.

1 голос
/ 14 июля 2016

Но теперь вы можете использовать NURLCredential вместо оболочки для ключей. Он делает то, что нам нужно.

0 голосов
/ 15 апреля 2015

Следующее должно работать просто отлично:

KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];
[keychainItem setObject:@"password you are saving" forKey:kSecValueData]; 
[keychainItem setObject:@"username you are saving" forKey:kSecAttrAccount];
...