Swift 使用CoreData获取和设置数据的正确方法
我对CoreData有问题,我在AppDelegate中设置了一些数据。随后在视图控制器的类中,我获取这些值并在列表视图中显示它们。当我试图从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
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")