【问题标题】:Storing Integer in Keychain Swift在钥匙串 Swift 中存储整数
【发布时间】:2021-07-12 06:09:48
【问题描述】:

我正在尝试在应用中实施试用。在试用版中,用户可以使用一定数量的项目的功能(如创建笔记)。我目前将试验项目计数存储在UserDefaults

问题在于 iOS UserDefaults 数据已清除,当用户重新安装应用程序时,试用会更新。

我想允许每台设备进行一次试用,其中试用笔记计数应在重新安装后从存储的值继续计算。

实现此目的的一种方法是将值存储在KeyChain 中,记录音符计数。所以我的问题是,是否允许将非密码值存储在KeyChain 中,或者是否有更好的方法来实现这一点?

【问题讨论】:

  • 你看过In-App Purchase吗?
  • 我认为您是在建议消耗性应用内购买。该应用程序已经有订阅。在允许的配额用完后,请求用户订阅。

标签: swift keychain userdefaults


【解决方案1】:

严格来说,您不能在钥匙串中保存整数。

但您可以将整数转换为 String 并将其存储为 密码 或与 JSON 格式的其他数据一起存储为 Secure Note

【讨论】:

  • 但是每次更新钥匙串值是否理想?
  • 为什么不呢?另一种方式可能是与网络服务器通信
  • 问,因为钥匙串通常用于存储密码等。
  • 将整数存储为字符串也无济于事,因为我需要一个整数来与限制进行比较。
  • 安全笔记用于存储非密码的敏感数据。将Int 转换为String 非常简单,反之亦然
【解决方案2】:

在使用 Apple 的 KeyChain API 一段时间后,我最终使用了名为 KeyChainSwift 的外部库来处理 KeyChain,我的很多问题都消失了。例如,在 Keychain 中存储任何类型的值(也是整数)。这是 cocapods 库的链接 KeyChainSwift ,这里是使用它的简单教程:KeychainSwift tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多