我正在尝试Using the Keychain to store passwords on iOS 故事来存储用户电子邮件和密码以便登录。
在我的m档案中:
....
....
#import "KeychainItemWrapper.m"
....
....
KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil];
[keychain setObject:kSecAttrAccessibleWhenUnlocked forKey:kSecAttrAccessible];
NSLog(@"%@, %@", [keychain objectForKey:kSecAttrAccount], [keychain objectForKey:kSecValueData]);
[keychain setObject:@"example@email.com" forKey:kSecAttrAccount];
[keychain setObject:@"MySuperSecretPassword" forKey:kSecValueData];
NSLog(@"%@, %@", [keychain objectForKey:kSecAttrAccount], [keychain objectForKey:kSecValueData]);
但我收到以下错误:
Implicit conversion of C pointer type 'CFTypeRef' (aka 'const void *') to Objective-C pointer type 'id' requires a bridged cast
答案 0 :(得分:6)
我已经在你的另一篇文章中回答了这个问题。 Is there an Android sharedpreferences equivalent in iOS to save credentials (Username and Password)?
我会在这里重新发布:
这是因为您可能正在使用“ARC”。你是?如果是这样,您可以设置一个标志来忽略该特定文件的ARC。选择项目,选择目标,选择Build Phases并展开“Compile Sources”下拉菜单。查找KeychainItemWrapper(或任何你称之为钥匙串文件)并设置此标志。 -fno-objc弧