iOS7:如何在钥匙串中存储密钥/布尔值

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

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

PS:我使用KeyChainItemWrapper。

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

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

并取回:

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

使用keychain key kSecAttrIsInvisiblekSecAttrIsNegative任一个作为这些支持来存储bool值。

我不明白一些事情。 为什么你需要将bool值存储在钥匙串中? 另外,核心数据将如何与钥匙链进行沟通或依靠它? 这个问题有点含糊。

查看今年的WWDC会议的Touch ID和Keychain(或去年的Keychain会议),了解您用来设置钥匙串并与之通信的属性。 另外看看今年苹果的示例项目。

文档有很多关于可以使用的密钥的信息,以及如何与钥匙链进行通信。