iOS7:如何在keychain中存储key / bool值

时间:2014-07-03 17:40:15

标签: ios keychain keychainitemwrapper

我实施应用内购买,所有产品都是非消耗品。我的目的是将bool值存储在每个产品标识符的钥匙串中,然后根据存储的bool值控制Core Data检索。

我的问题是:如何将key / bool值存储到钥匙串中?

P.S:我使用的是KeyChainItemWrapper。

2 个答案:

答案 0 :(得分:0)

我不明白一些事情。为什么需要将bool值存储在钥匙串中?此外,Core Data如何与钥匙串通信或依赖钥匙链?问题有点模糊。

Look at this year's WWDC session使用Touch ID和Keychain(或去年的Keychain会话)获取用于设置钥匙串并与之通信的属性。另请参阅Apple今年的示例项目。

The docs有很多关于您可以使用的密钥以及如何与钥匙串进行通信的信息。

答案 1 :(得分:0)

NSNumber的形式存储它,因为它包含一个特殊方法+ numberWithBool:以将BOOL值转换为对象:

[keychainItemWrapper setObject:[NSNumber numberWithBool:YES] forKey:(__bridge id)(kSecAttrIsInvisible)];

并获取:

NSNumber *value = [keychainItemWrapper objectForKey:(__bridge id)(kSecAttrIsInvisible)];
BOOL boolValue = [value boolValue];

使用钥匙串键kSecAttrIsInvisiblekSecAttrIsNegative作为支持来存储bool值。