0

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

这是我的代码,我想获得一个 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;
}

我就是想不通。

4

1 回答 1

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;
}

( _bridge id)kSecAttrLabel 可以是( _bridge id)kSecAttrDescription

于 2013-12-04T09:05:15.967 回答