这似乎是一个显而易见的问题,但我的谷歌搜索没有给我一个明确的答案 – 显然,核心数据NSInMemoryStoreType存储的想法是将整个图形存储在内存中,因此假设这将是合理的对任何时候都可以
(如果有人有任何轶事证据表明它在iOS设备上的容量,最好是iPhone 4S以上,那也是受欢迎的). 鉴于有一个替代的NSBinaryStoreType,其中数据被记录存储在磁盘上,并且给出了名称,我认为可以安全地假设NSInMemoryStoreType严格在内存中.
这个Apple doc说内存商店有“无需支持”,但没有明确说没有使用过.它还指出SQLite“并不要求整个对象图驻留在内存中”,暗示某些其他类型的存储确实存在,但同样它并不明确.
见this thread,Bill Bumgarner,可能是负责管理iOS运行团队的Bill Bumgarner,讨论了如何使用这种类型的商店.
至于限制,一些答案是在ios app maximum memory budget,但你应该考虑你的程序将对用户的整体体验产生的影响.如果您声称拥有所有RAM,则iOS将终止其他进程,导致在来回切换时丢失上下文. iOS也会在他们切换到Twitter或电子邮件时杀死你的应用程序,如果它正在使用所有的RAM.因此,尽管看起来有多少可用,但要尽量保持在几十兆字节内,除非你的应用真是太神奇了,没有人会切换掉.