Вы всегда должны использовать связку ключей для хранения имен пользователей и паролей, и, поскольку они хранятся надежно и доступны только для вашего приложения, нет необходимости удалять их при выходе из приложения (если это было вашей проблемой).
Apple предоставляет пример кода, который хранит, считывает и удаляет элементы цепочки для ключей, и вот как использовать класс оболочки цепочки для ключей из этого примера, что значительно упрощает использование цепочки для ключей.
Включите Security.framework (в Xcode 3 щелкните правой кнопкой мыши папку фреймворков и добавьте существующий каркас. В Xcode 4 выберите свой проект, затем выберите цель, перейдите на вкладку «Фазы сборки» и нажмите «+» в разделе «Связать двоичные файлы с файлами») и KeychainItemWrapper .h &. m файлов в ваш проект, # импортируйте файл .h везде, где вам нужно использовать цепочку для ключей, а затем создайте экземпляр этого класса:
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];
( YourAppLogin может быть любым, что вы выбрали для вызова элемента Keychain, и вы можете иметь несколько элементов при необходимости)
Затем вы можете установить имя пользователя и пароль, используя:
[keychainItem setObject:@"password you are saving" forKey:kSecValueData];
[keychainItem setObject:@"username you are saving" forKey:kSecAttrAccount];
Получить их с помощью:
NSString *password = [keychainItem objectForKey:kSecValueData];
NSString *username = [keychainItem objectForKey:kSecAttrAccount];
Или удалите их, используя:
[keychainItem resetKeychainItem];