当我关闭视图时Coredata崩溃

Posted

技术标签:

【中文标题】当我关闭视图时Coredata崩溃【英文标题】:Coredata crash when I dismiss a view 【发布时间】:2020-10-23 10:22:54 【问题描述】:

我正在构建一个在核心数据中搜索实体的视图。我用核心数据的搜索结果填充了一个数组。代码工作正常,但是当我关闭视图时,我收到以下错误并且我的应用程序崩溃。 我的系统是 XCode 12 Macos catalina 这是我收到的错误消息, 异常 NSException * "+entityForName: nil 不是用于搜索实体名称“Proveedor”的合法 NSPersistentStoreCoordinator" 0x0000600001be47e0

代码:

extension Proveedor 
    
    static func getProveedoresWith(string:String?, context:NSManagedObjectContext) -> [Proveedor]? 
        guard let partialString = string else  return nil 
        print(partialString)
        let request = NSFetchRequest<Proveedor>(entityName: "Proveedor")
        request.predicate = NSPredicate(format: "nombreFantasia CONTAINS %@", partialString)
        request.sortDescriptors = [NSSortDescriptor(key: "nombreFantasia", ascending: false)]
        let result = try? context.fetch(request)
        print(result)
        return result
    



struct FaenaManagerSeleccionarProveedorView: View 
    
    @Environment(\.managedObjectContext) var context
    @Binding var isShowing:Bool
    @State var aBuscar = ""
    
    var proveedores:[Proveedor]? 
        Proveedor.getProveedoresWith(string: aBuscar, context: context)
    
        
    var body: some View 
        
        VStack 
            TextField("value", text: $aBuscar)
                .padding()
                .font(.system(size: 12, weight: .light, design: .monospaced))
            List 
                ForEach(proveedores ?? [], id:\.id)  proveedor in
                    Text(proveedor.nombreFantasia!)
                
            
        
    

如果有人可以给我一个提示。

问候

【问题讨论】:

【参考方案1】:

我找到了答案,问题是我使用的是背景上下文。

而不是使用视图上下文。

【讨论】:

以上是关于当我关闭视图时Coredata崩溃的主要内容,如果未能解决你的问题,请参考以下文章

从 coreData 加载图像时崩溃

滚动时从“cellForRowAtIndexPath”保存到 CoreData 崩溃

在 CoreData 中设置值会使应用程序崩溃

如果 iCloud 开启,应用程序崩溃(链接到与 coreData 同步)

在 TodayExtension 中使用 MagicalRecord (CoreData)

从自定义框架访问 Coredata 时应用程序崩溃