ios - 存储 session 信息 - 另一个核心数据表或 "key-value"格式(YAML,JSON)的单独 session 文件?

标签 ios objective-c core-data key-value-store

我有一个 Session 类,我想保存和存储应用程序的当前 session 信息(如 lastLocation、remoteSessionToken 等)

我有一堆表的默认核心数据设置,我看到的最明显的解决方案是再创建一个表“ session ”,其中包含两个字符串字段:“字段”和“值”,并将 session 信息存储到该表中就像我将任何信息存储到其他表一样

  'field'             'value'
lastLocation        46.68,34.18
removeSessionToken  au987asdv7tta487tv9b
...

此外,我知道我可以使用 YAML 或 JSON 格式的特殊单独文件来设置 fx 来完成此操作,但这会导致同时拥有 Core Data 数据库和文件的逻辑不一致。

是否有任何推荐的方法来保存和持久化 session 信息?

最佳答案

除非适用以下内容,否则将其放在用户默认值或文档目录中的特殊用途文件中:

  • 您有很多 session ,需要根据某种谓词搜索或过滤它们
  • 您有多个 session ,并且 session 与数据存储中的特定对象有某种关系。

使用 Core Data 和单独的文件并不是“逻辑不一致”。做有意义的事。将此信息保存在您的数据存储中可能没有意义,因此除非您有一些令人信服的理由,否则不要这样做。

如果信息可能被认为是敏感信息,请将其放入钥匙串(keychain)中。

此外,在 Core Data 中创建通用容器实体非常难看。像您描述的那样使用 fieldvalue 字段不是一个好的设计决策。

关于ios - 存储 session 信息 - 另一个核心数据表或 "key-value"格式(YAML,JSON)的单独 session 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14265502/

相关文章:

ios - 在 native Swiper 中动态呈现内容

c++ - 如何在不在 .h 文件中制作原型(prototype)的情况下将 Objective-C++ 类公开给 swift

ios - 新版本如何防止核心数据问题

ios - 获取核心数据,显示数组中的项目数而不是字符串

ios - 如何在 xCode AutoLayout 中撤消编辑最终值,以便再次优先使用基本值?

ios - 本地化 iOS 无法正常工作

ios - 如何将三个标签添加到导航栏?

ios - 带有 NSOperation 的 MagicalRecord 导致持久性问题

ios - 将值传递给另一个类并将其显示在该 View Controller 上

ios - 从 iOS 包访问预先存在的数据库(只读)