ios:内存数据存储

标签 ios core-data in-memory-database

我想通过以下方式在 iphone 上创建一个包含核心数据的内存数据存储:

  • 商店的数据以加密文件的形式保存到磁盘(最大大小为 400kb)
  • 加密的文件被完全加载到内存中,然后我将解密它,以便我在内存中有一些数据数组
  • 我想告诉 NSPersistentStoreCoordinator 使用这个数据数组,这是我想使用的商店。
  • 在代码的某些位置,内存中的当前数据存储将被复制到另一个数据阵列、加密并存储到磁盘,这样磁盘上的数据始终对应于最新版本的数据。

我必须这样做,因为数据是敏感的用户数据,绝对不能存储在普通数据库中。

在我的应用程序中,我已经实现了一个版本,其中托管对象的每个属性都被加密,这样存储在磁盘上的 sqlite 数据库只包含神秘的不可读值。不幸的是,事实证明它太慢了,无法每次即时加密解密所有内容。

首先:这可能吗? 其次:有没有需要注意的地方?

最佳答案

我不确定这是否对您有帮助,但在 iOS5 中,持久存储现在以加密格式在磁盘上存储数据。这也是 iOS4 中的一个选项。查看documentation .

For applications built for iOS 5.0 or later, persistent stores now store data by default in an encrypted format on disk. The default protection level prevents access to the data until after the user unlocks the device for the first time. You can change the protection level by assigning a custom value to the NSPersistentStoreFileProtectionKey key when configuring your persistent stores. For additional information about the data protection that are new in iOS 5.0, see “Data Protection Improvements.”

关于ios:内存数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8539119/

相关文章:

swift - CoreData/TableView - 'subscript' 的使用不明确

iphone - NSPredicate 基于此对象是否与另一个对象相关?

java - 加载位于 H2 数据库类路径中的 CSV 文件

ubuntu14.04 : Bind address already in use 中的 redis 服务器

ios - 计算 UIBezierPath 曲线控制点

ios - XPC在蓝牙通信时崩溃

javascript - 当专注于 iPhone 上的只读输入时,事件停止触发

iphone - 如何同时对多个轨道(音频和视频)使用 AVAssetReader 和 AVAssetWriter?

swift - 如何获得扩展以返回子类类型

database - 与基于磁盘的 NoSQL 数据库相比,内存数据库的主要性能优势是什么?