它是否使应用程序运行之间的关键链项持久存在?
答案 0 :(得分:2)
是的,没错。查看Keychain Services Reference:
获取持久性引用 添加的项目(类型的对象 CFDataRef),指定 带有值的kSecReturnPersistentRef of kCFBooleanTrue。请注意,不像 正常引用,持久性 引用可以存储在磁盘或 在流程之间传递。
答案 1 :(得分:2)
事实证明,持久性引用只是一个引用。它可以用作以后查找钥匙串项目的密钥,在有权访问共享钥匙串项目的应用程序之间共享引用等。
答案 2 :(得分:2)
@Plumenator您可以稍后搜索Keychain项目,并在搜索词典中为密钥kCFBooleanTrue
提供值kSecReturnPersistentRef
。如果找到某个项目,Keychain Services将返回对其的持久引用。如果SecItemAdd()
成功将一个项目添加到钥匙串,只要钥匙串存在(通常直到重置设备)或SecItemDelete()
将其删除,它就会保留在那里。
要回答第二个问题:键kSecReturnPersistentRef
被称为返回类型键,因为您指定了函数SecItemAdd()
或SecItemCopyMatching()
应返回给您的内容。可能的标记为kSecReturnPersistentRef
,kSecReturnData
,kSecReturnAttributes
和kSecReturnRef
。