2014-08-28 93 views
0

我開始閱讀這個鑰匙串的蘋果示例,並且明白它們正在獲取與此類型的kchacAttrGeneric關聯的鑰匙串項目的所有值。然後,當有人試圖搜索一個密鑰,他們會形成緩存的值,這是正確的方法,我覺得這種預取方式是不正確的。一次性獲取鑰匙串中的所有物品?

您能否讓我知道預取鑰匙串中的所有數據的原因,而不是直接從鑰匙串中根據需要訪問它。

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

回答

1

我相信你稍微誤讀了這個例子。在通用密鑰鏈中,他們沒有獲取「所有項目」。他們只提取一個項目和一個值。鑰匙鏈項目由半公開的屬性和受保護的「值」組成。從鑰匙鏈中讀取出來的代價非常昂貴(比從磁盤讀取文件要慢得多,速度真的很慢)。所以這個例子避免在不需要時重新讀取它。但它並沒有讀完整個鑰匙鏈;只是存儲其數據的一個項目。

+0

是的,你是對的,我得到你,感謝澄清 – thndrkiss 2014-08-29 00:40:04

1

它有效率的事。從磁盤讀取代價很高,因此如果您要多次讀取鑰匙串,那麼讀取整個鑰匙串,然後在內存中進行查找效率會更高。

+0

安全嗎?!?我記得閱讀關於鑰匙鏈的訪問,例如只有在設備解鎖等情況下才能打開它,如果我們這樣做,我們會錯過這些功能?!? – thndrkiss 2014-08-29 00:07:16