ios:内存中的数据存储

ios:内存中的数据存储,ios,core-data,in-memory-database,Ios,Core Data,In Memory Database,我想通过以下方式在iphone上创建一个包含核心数据的内存中数据存储: 存储区的数据保存到磁盘的加密文件中,最大大小为400kb 加密文件被完全加载到内存中,然后我将解密它,以便在内存中有一些数据数组 我想告诉NSPersistentStoreCoordinator使用这个数据数组,它是我想要使用的存储。 在代码中的某些点,当前内存中的数据存储将被复制到另一个数据数组中,进行加密并存储到磁盘,以便磁盘上的数据始终对应于数据的最新版本。 我必须这样做,因为数据是敏感的用户数据,绝对不能存储在普通数

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

存储区的数据保存到磁盘的加密文件中,最大大小为400kb 加密文件被完全加载到内存中,然后我将解密它,以便在内存中有一些数据数组 我想告诉NSPersistentStoreCoordinator使用这个数据数组,它是我想要使用的存储。 在代码中的某些点,当前内存中的数据存储将被复制到另一个数据数组中,进行加密并存储到磁盘,以便磁盘上的数据始终对应于数据的最新版本。 我必须这样做,因为数据是敏感的用户数据,绝对不能存储在普通数据库中

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

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

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

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


另一种选择是将SQLCipher移植到iOS.interesting。但我想这不适用于核心数据?我不知道。它是SQLite的一个插件替代品,但我不知道你是否能以某种方式将核心数据插入到插件中——我从未使用过核心数据。谢谢你的回答。但据我所知,数据将只受用户用来解锁手机的4位代码的保护。我认为这个解决方案对我的任务来说是不够的。好吧,我不知道你的确切要求,我只是想把它扔出去。