加载核心数据(iOS和swiftUI)
我正在开发一个应用程序,我需要保存数据,所以我使用核心数据,不幸的是,我不是核心数据专家 当我第一次运行应用程序时,它会工作并保存我检查过的*.sqlit文件中的数据,但如果重新运行应用程序,则会出现此错误加载核心数据(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
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 >