iOS:无法使用KeychainItemWrapper将项添加到钥匙串

时间:2013-07-10 08:28:45

标签: ios keychain keychainitemwrapper

首先:我知道有关KeychainItemWrapper已经发布的其他问题。我读了所有这些,但我没有成功应该是一个非常简单的任务:在Keychain中存储一个值(在设备上,而不是模拟器)。我总是得到一个断言失败,“无法添加钥匙串项目。”

这是我的代码,我想获得一个uuid,如果不存在,则创建并存储一个:

+ (NSString *)getDeviceID{
KeychainItemWrapper * keychain = [[[KeychainItemWrapper alloc]initWithIdentifier:KEYCHAIN_ID accessGroup:nil]autorelease];
NSString * uuid = [keychain objectForKey:KEYCHAIN_ID];
if ( uuid == nil ){
    uuid = [self createDeviceID];
    [keychain setObject:uuid forKey:@"UUID"];
}
return uuid;
}

我无法理解。

1 个答案:

答案 0 :(得分:0)

+ (NSString *)getDeviceID
{
    KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:KEYCHAIN_ID accessGroup:nil];
    NSString * uuid = [keychain objectForKey:(__bridge id)kSecAttrLabel];

    if ( uuid == nil )
    {
        uuid = [self createDeviceID];
        [keychain setObject:uuid forKey:(__bridge id)kSecAttrLabel];
    }
    return uuid;
}

(_ 网桥ID)kSecAttrLabel可以是( _bridge id)kSecAttrDescription