【发布时间】:2017-09-27 00:00:03
【问题描述】:
我需要在应用启动和设备重启之间存储一个持久记忆令牌(一个字符串)。一旦我的用户登录到应用程序及其后端服务(已经构建),该令牌将由服务器提供。具体来说,我需要为记忆标记设置一个持久数据占位符,但我不希望代码实际设置该占位符的值。
一方面,NSUserDefaults(现在称为UserDefaults)似乎是一种简单的方法,但在阅读文档后,似乎这不是该功能的意图。我看到的所有文档都显示了通过为键分配值来进行设置。我绝对不想让应用程序为该键分配值。
最简单的方法是什么?
【问题讨论】:
-
不清楚你真正想要什么......我知道你想存储一个字符串(你的 token)然后 UserDefaults 是解决方案,你为什么拒绝?只需将您的令牌存储为您选择的密钥(“令牌”或“凭据”)的值。因此,您将能够检索给定 keu 的令牌。
-
不清楚如何只设置数据结构而不应用值。
-
你的应用程序中的某些东西必须做一些事情来使你的令牌持久化。如果分配值不是一种选择,您如何想象保存收到的信息?
-
一种选择是使用钥匙串将令牌和凭据等元素安全地存储到设备中。与 UserDefaults 不同,卸载应用程序后信息不会被删除。恢复出厂设置将重置钥匙串。所以钥匙串应该适合存储你的令牌。 Apple 提供了一个用于访问钥匙串功能的包装类:gist.github.com/vtourraine/1409718
-
我不知道你想要什么。您正在从您的服务器获取一个令牌,并且您想保存它。但是您也说您不希望您的代码保存该值。你想保存还是不保存?如果你这样做了,你不希望你的代码保存值是什么意思?
标签: ios swift3 persistent-storage persistent-data