ios:在内存数据存储中

时间:2011-12-16 19:22:30

标签: ios core-data in-memory-database

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

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

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

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

首先:这可能吗? 第二:可能有一些我需要注意的事情吗?

1 个答案:

答案 0 :(得分:0)

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

  

对于为iOS 5.0或更高版本构建的应用程序,持久性存储现在默认以加密格式存储数据到磁盘上。在用户首次解锁设备之后,默认保护级别将阻止访问数据。您可以在配置持久性存储时通过为NSPersistentStoreFileProtectionKey键分配自定义值来更改保护级别。有关iOS 5.0中新增的数据保护的其他信息,请参阅“数据保护改进”。