Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Swift 使用CoreData获取和设置数据的正确方法_Swift_Xcode_Core Data_Swift3 - Fatal编程技术网

Swift 使用CoreData获取和设置数据的正确方法

Swift 使用CoreData获取和设置数据的正确方法,swift,xcode,core-data,swift3,Swift,Xcode,Core Data,Swift3,我对CoreData有问题,我在AppDelegate中设置了一些数据。随后在视图控制器的类中,我获取这些值并在列表视图中显示它们。当我试图从CoreData获取视图中的值时,我什么也没有得到 这是我用来创建上下文的代码: public func createMainContext() -> NSManagedObjectContext { let modelUrl = Bundle.main.url(forResource: "ItemModel", withExtension

我对CoreData有问题,我在AppDelegate中设置了一些数据。随后在视图控制器的类中,我获取这些值并在列表视图中显示它们。当我试图从CoreData获取视图中的值时,我什么也没有得到

这是我用来创建上下文的代码:

public func createMainContext() -> NSManagedObjectContext {

    let modelUrl = Bundle.main.url(forResource: "ItemModel", withExtension: "momd")
    guard let model = NSManagedObjectModel.init(contentsOf: modelUrl!) else { fatalError("model not found") }
    let psc = NSPersistentStoreCoordinator(managedObjectModel: model)
    try! psc.addPersistentStore(ofType: NSInMemoryStoreType, configurationName: nil, at: nil, options: nil)
    let context = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
    context.persistentStoreCoordinator = psc
    return context
}
这是我用来获取值的代码:

    var fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Topic")
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context = createMainContext()

    let result = try! context.fetch(fetchRequest)


    debugPrint("---- \(result)")
当我最初设置值时,我执行一次获取&我可以看到这些值,但是,当从另一个视图执行获取时,我什么也没有得到

有没有人对我做错了什么有什么建议或正确的方法


感谢

演示如何在CoreData中创建条目。添加到上面的主要问题中,每次调用createMainContext()创建新上下文时,我都会将主题名称设置为StringValue,每个上下文都有自己的,并且在内存中单独存储。将新对象添加到一个上下文/存储,但视图控制器使用的是另一个(空)上下文/存储。
let context = self.createMainContext()
let entity = NSEntityDescription.insertNewObject(forEntityName: "Topic", into: context)  

entity.setValue(name.stringValue, forKey: "name")