我有两个实体,一个称为项目,一个称为任务,项目可以为他们提供许多任务。我有一个提取请求,应该提取与项目相关的所有任务,但是在点击一个项目以移动到包含项目任务的视图时,出现此错误:
Thread 1: Exception: "-[__NSConcreteUUID longLongValue]: unrecognized selector sent to instance 0x600002969b20"
这是我的两节课:
extension ProjectItem {
@NSManaged public var projectId: UUID
@NSManaged public var projectTitle: String
@NSManaged public var task: NSSet
}
extension TaskItem {
@NSManaged public var id: UUID
@NSManaged public var isComplete: Bool
@NSManaged public var title: String
@NSManaged public var project: ProjectItem?
}
这是我的视图和获取请求:
struct ProjectDetail: View {
@Environment(\.managedObjectContext) var managedObjectContext
@ObservedObject var projectItem: ProjectItem
private var tasksInProject: FetchRequest<TaskItem>
private var taskItems: FetchedResults<TaskItem> { tasksInProject.wrappedValue }
init(_ project:ProjectItem) {
self.projectItem = project
self.tasksInProject = FetchRequest(
entity: TaskItem.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \TaskItem.createdDate, ascending: false)],
predicate: NSPredicate(format: "project == %@", project.projectId as CVarArg))
}
...
var body: some View {
ForEach(taskItems, id:\.id) { taskItem in
Text("\(taskItem.title)")
}
}
请帮忙!我已经为此花了一个多星期了。
的TaskItem.project
类型ProjectItem?
不是UUID,因此请尝试
self.tasksInProject = FetchRequest(
entity: TaskItem.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \TaskItem.createdDate, ascending: false)],
predicate: NSPredicate(format: "project.projectId == %@", project.projectId as CVarArg))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句