加载核心数据(iOS和swiftUI)

加载核心数据(iOS和swiftUI),swift,core-data,swiftui,iphonecoredatarecipes,swiftui-environment,Swift,Core Data,Swiftui,Iphonecoredatarecipes,Swiftui Environment,我正在开发一个应用程序,我需要保存数据,所以我使用核心数据,不幸的是,我不是核心数据专家 当我第一次运行应用程序时,它会工作并保存我检查过的*.sqlit文件中的数据,但如果重新运行应用程序,则会出现此错误 2020-09-12 02:52:02.539123+0100 photoUniq_ios_v3[6106:338281] -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to in

我正在开发一个应用程序,我需要保存数据,所以我使用核心数据,不幸的是,我不是核心数据专家

当我第一次运行应用程序时,它会工作并保存我检查过的*.sqlit文件中的数据,但如果重新运行应用程序,则会出现此错误

    2020-09-12 02:52:02.539123+0100 photoUniq_ios_v3[6106:338281] -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0
    2020-09-12 02:52:02.539730+0100 photoUniq_ios_v3[6106:338281] [error] fault: exception raised during multi-threaded fetch -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0 ((null))
    CoreData: fault: exception raised during multi-threaded fetch -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0 ((null))
    2020-09-12 02:52:02.539958+0100 photoUniq_ios_v3[6106:338281] [error] CoreData: exception raised during multi-threaded fetch -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0 ((null))
    2020-09-12 02:52:02.540290+0100 photoUniq_ios_v3[6106:338281] [error] error: SQLCore dispatchRequest: exception handling request: <NSSQLFetchRequestContext: 0x60000174c2a0> , -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0 with userInfo of (null)
    CoreData: error: SQLCore dispatchRequest: exception handling request: <NSSQLFetchRequestContext: 0x60000174c2a0> , -[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0 with userInfo of (null)
    2020-09-12 02:52:02.589331+0100 photoUniq_ios_v3[6106:338281] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x600000a562e0'
...
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[photoUniq_ios_v3.PUWorkspace initWithCoder:]: unrecognized selector sent to instance 0x60000344d3e0'
terminating with uncaught exception of type NSException
普斯威夫特

class PU: NSManagedObject{
    

    let id = UUID()
    var defaultWorkspace:PUWorkspace{
        self.cd_xWorkspaces!.first!
    }
    

     init(ctx:NSManagedObjectContext?) {
        
        super.init(entity: PUPhotouniq.entity(), insertInto: ctx)

        self.cd_xGallary = PUGallary(ctx: self.managedObjectContext)
        self.cd_xWorkspaces = Array()
        self.cd_xWorkspaces!.add(PUWorkspace(ctx: self.managedObjectContext))
   
    }
}
斯威夫特

import Foundation
import SwiftUI
import CoreData

class PUWorkspace:NSManagedObject {
        
    let id = UUID()
    @NSManaged var cd_nome:String?
    @NSManaged  var cd_porcessedxFoldres:[PUFolder]?
    @NSManaged var cd_xFoldres:[PUFolder]?
    @NSManaged var cd_originalxFoldres:[PUFolder]?
    
  
    @Published var cd_cover:UIImage = UIImage() //Init
    
    
    var defaultFolder:PUFolder{
        cd_xFoldres!.first ?? PUFolder(ctx: self.managedObjectContext)
    }
    
    init(ctx:NSManagedObjectContext?) {
        super.init(entity: Self.entity(), insertInto: ctx)
        self.cd_cover = UIImage.defaultImage
        self.cd_nome = String.defaultName
        self.cd_xFoldres = []
        self.cd_xFoldres!.add(PUFolder(ctx: self.managedObjectContext))
        self.cd_originalxFoldres = []
        self.cd_porcessedxFoldres = []
    }

   }
    
还有一些功能

获取数据

@FetchRequest(entity: PU.entity(), sortDescriptors: []) var photoUniq2:FetchedResults<PU >

什么会导致错误以及我如何解决它?

您不能将NSManagedObject数组或子类添加为其他NSManagedObject的属性。您需要定义关系来表示该数据。@pbasdf我使用了可转换的as数据类型。然而,这就是问题的原因。失败的initWithCoder调用是CoreData从存储解包数据并尝试创建相应的PUWorksoace实例的地方。
@FetchRequest(entity: PU.entity(), sortDescriptors: []) var photoUniq2:FetchedResults<PU >