kSecReturnPersistentRef做什么?

时间:2011-01-12 13:57:33

标签: iphone ios keychain

它是否使应用程序运行之间的关键链项持久存在?

3 个答案:

答案 0 :(得分:2)

是的,没错。查看Keychain Services Reference

  

获取持久性引用   添加的项目(类型的对象   CFDataRef),指定   带有值的kSecReturnPersistentRef   of kCFBooleanTrue。请注意,不像   正常引用,持久性   引用可以存储在磁盘或   在流程之间传递。

答案 1 :(得分:2)

事实证明,持久性引用只是一个引用。它可以用作以后查找钥匙串项目的密钥,在有权访问共享钥匙串项目的应用程序之间共享引用等。

答案 2 :(得分:2)

@Plumenator您可以稍后搜索Keychain项目,并在搜索词典中为密钥kCFBooleanTrue提供值kSecReturnPersistentRef。如果找到某个项目,Keychain Services将返回对其的持久引用。如果SecItemAdd()成功将一个项目添加到钥匙串,只要钥匙串存在(通常直到重置设备)或SecItemDelete()将其删除,它就会保留在那里。

要回答第二个问题:键kSecReturnPersistentRef被称为返回类型键,因为您指定了函数SecItemAdd()SecItemCopyMatching()应返回给您的内容。可能的标记为kSecReturnPersistentRefkSecReturnDatakSecReturnAttributeskSecReturnRef