kSecReturnPersistentRef是什么意思?

4
它能使钥匙链项目在应用程序运行之间保持持久吗?
3个回答

3
@Plumenator,您可以稍后搜索 Keychain 条目,并在搜索字典中为键“kSecReturnPersistentRef”提供值“kCFBooleanTrue”。如果找到该条目,则 Keychain 服务将返回对其的持久引用。如果“SecItemAdd()”成功将项目添加到 Keychain 中,则它将保留在那里,只要 Keychain 存在(通常直到设备重置)或“SecItemDelete()”将其删除。
回答您的第二个问题:键“kSecReturnPersistentRef”被称为返回类型键,因为您指定函数“SecItemAdd()”或“SecItemCopyMatching()”应向您返回什么。可能的标志包括“kSecReturnPersistentRef”,“kSecReturnData”,“kSecReturnAttributes”和“kSecReturnRef”。

2
是的,没错。请查看钥匙串服务参考

要获取已添加项的持久引用(类型为CFDataRef的对象),请使用kSecReturnPersistentRef和kCFBooleanTrue值。请注意,与普通引用不同,持久引用可以存储在磁盘上或在进程之间传递。


那么,如果我在使用SecAddItem()时不使用这个标志,我的应用程序关闭后,我会失去那个项目吗? - Plumenator
此外,为什么这个标志被称为返回类型常量?我如何在SecItemAdd()中使用它?它似乎不属于SecItemAdd()的属性参数。 - Plumenator

2

原来持久引用就是一个引用。它可以被用作查找钥匙串项目的键、在有权访问共享钥匙串项目的应用程序之间共享引用,等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接