在钥匙串 Swift 中存储整数
Posted
技术标签:
【中文标题】在钥匙串 Swift 中存储整数【英文标题】:Storing Integer in Keychain Swift 【发布时间】:2021-07-12 06:09:48 【问题描述】:我正在尝试在应用中实施试用。在试用版中,用户可以使用一定数量的项目的功能(如创建笔记)。我目前将试验项目计数存储在UserDefaults
。
问题在于 ios UserDefaults 数据已清除,当用户重新安装应用程序时,试用会更新。
我想允许每台设备进行一次试用,其中试用笔记计数应在重新安装后从存储的值继续计算。
实现此目的的一种方法是将值存储在KeyChain
中,记录音符计数。所以我的问题是,是否允许将非密码值存储在KeyChain
中,或者是否有更好的方法来实现这一点?
【问题讨论】:
你看过In-App Purchase吗? 我认为您是在建议消耗性应用内购买。该应用程序已经有订阅。在允许的配额用完后,请求用户订阅。 【参考方案1】:严格来说,您不能在钥匙串中保存整数。
但您可以将整数转换为 String
并将其存储为 密码 或与 JSON 格式的其他数据一起存储为 Secure Note。
【讨论】:
但是每次更新钥匙串值是否理想? 为什么不呢?另一种方式可能是与网络服务器通信 问,因为钥匙串通常用于存储密码等。 将整数存储为字符串也无济于事,因为我需要一个整数来与限制进行比较。 安全笔记用于存储非密码的敏感数据。将Int
转换为String
非常简单,反之亦然【参考方案2】:
在使用 Apple 的 KeyChain API 一段时间后,我最终使用了名为 KeyChainSwift
的外部库来处理 KeyChain
,我的很多问题都消失了。例如,在 Keychain 中存储任何类型的值(也是整数)。这是 cocapods 库的链接 KeyChainSwift ,这里是使用它的简单教程:KeychainSwift tutorial
【讨论】:
以上是关于在钥匙串 Swift 中存储整数的主要内容,如果未能解决你的问题,请参考以下文章