ios - XCode 中的钥匙串(keychain)警告

标签 ios xcode keychain

这是我的代码:

    //Set
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"Animex" accessGroup:nil];
[keychain setObject:username forKey:kSecValueData];
[keychain setObject:password forKey:kSecAttrAccount];

[keychain release];

它工作得很好,但我收到警告:

"passing argument 2 of 'set object:forkey' discards qualifiers from pointer target type.

这是什么意思? 如何解决?

最佳答案

将参数转换为id。

[keychain setObject:username forKey:(id)kSecValueData];
[keychain setObject:password forKey:(id)kSecAttrAccount];

kSecValueData 和 kSecAttrAccount 是 CFTypeRef 并且 setObject:forKey: 需要一个 id。

CFTypeRef 定义为:

typedef const void * CFTypeRef;

事实上,它是一个 const 给你这个警告。

关于ios - XCode 中的钥匙串(keychain)警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014343/

相关文章:

ios - 在数组中的对象上使用过滤器来查找最大值? [ swift ]

ios - 安全飞地 : update SecAccessControlCreateFlags after key creation

c++ - 将 XCode 项目动态链接到 lib4cxx 库时,如何解决单个符号链接(symbolic link)错误?

ios - 如何在 iOS 中仅过滤 GMSAutocompleteResultsViewController 中的学校?

ios - 将加密 key 存储在 defaultConfiguration 中是否安全?

xcode - 没有可用于签名的身份 - 在 xcode 中发布应用程序

ios - z-index 不适用于 iPad

ios - UITableViewCell 中的 UITextField - 防止文本重置的方法

ios - 为什么 NULL 需要用 block 进行类型转换?

ios - 使用 SSKeychain 存储在钥匙串(keychain)中的用户名是否总是出现在第 4 个索引中?