我实施应用内购买,所有产品都是非消耗品。我的目的是将bool值存储在每个产品标识符的钥匙串中,然后根据存储的bool值控制Core Data检索。
我的问题是:如何将key / bool值存储到钥匙串中?
P.S:我使用的是KeyChainItemWrapper。
答案 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];
使用钥匙串键kSecAttrIsInvisible
和kSecAttrIsNegative
作为支持来存储bool值。