SecItemAdd返回OSStatus代码
我试图写入iOS中的钥匙串,每当我在设备上进行测试时尝试写入钥匙串时,由于SecItemAdd的结果我得到了-50错误代码。
我第一次试图自己实现这样一个机制,在得到错误很多次之后,我尝试了KeychainItemWrapper,认为我做错了什么。 但使用KeychainItemWrapper也给了我相同的错误代码:(KeychainItemWrapper的ARCified版本,https://gist.github.com/dhoerl/1170641)
line 305: NSAssert( result == noErr, @"Couldn't add the Keychain Item." );
结果是-50,与我自己尝试时得到的结果相同。 这里是我如何使用包装器(访问组是我的应用程序ID)
keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"data" accessGroup:@"my.app.identifier"];
purchasedPacks = [keychain objectForKey:@"packs"];
if(purchasedPacks == nil){
[keychain setObject:[[NSMutableArray alloc] init] forKey:@"packs"];
}
我首先想到可能设置一个可变数组会是一个问题,但尝试一个字符串也失败了相同的方式。 什么可能是问题的原因?
谢谢,可以。
你不能使用[keychain setObject: forKey:]
任意键。 以下将起作用:
[keychain setObject:[[NSMutableArray alloc] init]
forKey:(__bridge id)kSecValueData]
Apple文档充满了关于此的信息。
链接地址: http://www.djcxy.com/p/14599.html上一篇: SecItemAdd returning OSStatus code
下一篇: How to properly handle asynchronous database replication?