Я очень новичок в разработке iOS, поэтому простите меня, если это вопрос новичков. У меня есть простой механизм проверки подлинности для моего приложения, в котором используется адрес электронной почты пользователя и пароль. У меня также есть переключатель, который говорит "Запомнить меня". Если пользователь переключает это действие, я хотел бы сохранить их адрес электронной почты/пароль, чтобы эти поля могли быть автоматически заполнены в будущем.
Я получил это, чтобы работать с сохранением в файл plist, но я знаю, что это не лучшая идея, так как пароль не зашифрован. Я нашел пример кода для сохранения брелка, но, честно говоря, я немного потерял. В приведенной ниже функции я не уверен, как ее назвать и как ее изменить, чтобы сохранить адрес электронной почты.
Я предполагаю, что это будет: saveString(@"passwordgoeshere");
Спасибо за любую помощь!!!
+ (void)saveString:(NSString *)inputString forKey:(NSString *)account {
NSAssert(account != nil, @"Invalid account");
NSAssert(inputString != nil, @"Invalid string");
NSMutableDictionary *query = [NSMutableDictionary dictionary];
[query setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass];
[query setObject:account forKey:(id)kSecAttrAccount];
[query setObject:(id)kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];
OSStatus error = SecItemCopyMatching((CFDictionaryRef)query, NULL);
if (error == errSecSuccess) {
// do update
NSDictionary *attributesToUpdate = [NSDictionary dictionaryWithObject:[inputString dataUsingEncoding:NSUTF8StringEncoding]
forKey:(id)kSecValueData];
error = SecItemUpdate((CFDictionaryRef)query, (CFDictionaryRef)attributesToUpdate);
NSAssert1(error == errSecSuccess, @"SecItemUpdate failed: %d", error);
} else if (error == errSecItemNotFound) {
// do add
[query setObject:[inputString dataUsingEncoding:NSUTF8StringEncoding] forKey:(id)kSecValueData];
error = SecItemAdd((CFDictionaryRef)query, NULL);
NSAssert1(error == errSecSuccess, @"SecItemAdd failed: %d", error);
} else {
NSAssert1(NO, @"SecItemCopyMatching failed: %d", error);
}
}