Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:将数据存储在内存中而不是磁盘上_Ios_Core Data_In Memory Database_Nspersistentstore - Fatal编程技术网

iOS:将数据存储在内存中而不是磁盘上

iOS:将数据存储在内存中而不是磁盘上,ios,core-data,in-memory-database,nspersistentstore,Ios,Core Data,In Memory Database,Nspersistentstore,我正在寻找一个关于如何在iOS(10+)中将敏感数据存储在内存中而不是磁盘上的教程。我在谷歌上搜索过,但没有找到真正相关的东西 我熟悉iOS、SQLite、Plist、核心数据、用户默认值和Keychain的大多数数据存储选项。我知道核心数据有一个内存中持久存储选项,但不确定如何将其指定为我想要使用的选项。查看Apple文档和其他教程,我只看到了持久性存储的实例化,但没有声明它是sqlite还是核心数据或内存 例如,核心数据堆栈上的苹果文档: import UIKit import CoreDa

我正在寻找一个关于如何在iOS(10+)中将敏感数据存储在内存中而不是磁盘上的教程。我在谷歌上搜索过,但没有找到真正相关的东西

我熟悉iOS、SQLite、Plist、核心数据、用户默认值和Keychain的大多数数据存储选项。我知道核心数据有一个内存中持久存储选项,但不确定如何将其指定为我想要使用的选项。查看Apple文档和其他教程,我只看到了持久性存储的实例化,但没有声明它是sqlite还是核心数据或内存

例如,核心数据堆栈上的苹果文档:

import UIKit
import CoreData
class DataController: NSObject {
    var managedObjectContext: NSManagedObjectContext
    init(completionClosure: @escaping () -> ()) {
        persistentContainer = NSPersistentContainer(name: "DataModel")
        persistentContainer.loadPersistentStores() { (description, error) in
            if let error = error {
                fatalError("Failed to load Core Data stack: \(error)")
            }
            completionClosure()
        }
    }
}
这个问题似乎指向了正确的方向(只是最初发布的代码)

只是传递一个类型吗?接下来,一旦应用程序关闭,内存中的数据就会被释放


谢谢

因为您使用的是
NSPersistentContainer
,所以您可以告诉核心数据在
NSPersistentStoreDescription
的实例中使用哪种存储。它有一个名为
type
的属性,该属性接受类似
NSInMemoryStoreType
的值。设置一个描述,然后将其分配给容器的
persistentstorescriptions
属性,您将得到一个内存存储。您提到的方法可行,但需要将核心数据设置更改为drop
NSPersistentContainer


顾名思义,它只存在于内存中,因此当应用程序退出时,存储在内存中的任何内容都会消失。

是的。查看
nsimemorystoretype
上的文档。谢谢Tom,这正是我要找的。
- (NSPersistentStore *)addPersistentStoreWithType:(NSString *)storeType configuration:(NSString *)configuration URL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error;