我有两个实体,一个叫做项目,一个叫做任务,项目可以有很多任务。我有一个获取请求,它应该获取与项目关联的所有任务,但是在点击项目以移动到包含项目任务的 View 时出现此错误:
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?
}
这是我的 View 和获取请求: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))
关于ios - 获取请求 "unrecognized selector"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62926561/