0

我开始阅读这个用于钥匙串的苹果示例,并了解到他们正在获取与类型 kSecAttrGeneric 关联的这个钥匙串项的所有值。然后当有人试图搜索一个键时,他们会从缓存的值中搜索,这是正确的方法吗,我不知何故觉得这种预取方式是不正确的。

您能否让我知道从钥匙串中预取所有数据的原因是什么,而不是根据需要直接从钥匙串中访问它。

https://developer.apple.com/library/ios/samplecode/GenericKeychain/Introduction/Intro.html

4

2 回答 2

1

它与效率有关。从磁盘读取成本很高,因此如果您要多次读取钥匙串,则读取整个钥匙串然后在内存中挖掘它会更有效。

于 2014-08-28T23:21:11.330 回答
1

我相信你稍微误读了这个例子。在 GenericKeychain 中,他们没有获取“所有项目”。他们只获取一个项目及其一个值。钥匙串项由半公开的属性和受保护的“值”组成。从钥匙串中读取非常昂贵(比从磁盘读取文件要慢得多;它真的非常慢)。所以这个例子是避免在不需要时重新阅读它。但它不是读取整个钥匙串;只是存储其数据的一项。

于 2014-08-29T00:19:56.310 回答