ios - 获取请求“无法识别的选择器”错误
问题描述
我有两个实体,一个叫做项目,一个叫做任务,项目可以有很多任务。我有一个获取请求,它应该获取与项目关联的所有任务,但是在点击项目以移动到包含项目任务的视图时出现此错误:
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
is type of ProjectItem?
not UUID,所以试试
self.tasksInProject = FetchRequest(
entity: TaskItem.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \TaskItem.createdDate, ascending: false)],
predicate: NSPredicate(format: "project.projectId == %@", project.projectId as CVarArg))
推荐阅读
- coq - Coqtop 无法加载文件
- google-drive-api - 尝试设置谷歌服务帐户。生成的电子邮件不起作用
- python - Python Socket utf-8 解码
- python - 在 Anaconda 中设置第二个 Python 环境后,导入基本包失败并显示 [WinError 193] %1 is not a valid Win32 application
- python - 匹配算法问题 - 匹配偏移位置
- r - 查找两条曲线之间的重叠区域
- python - python将字符串更改为列表,字符串包含括号
- python - 为什么 ZeroMQ 演示代码在 Win10 上不起作用?
- r - 如何检查 r 中的组是否存在特定标志?
- css - input[type="search"]::-webkit-search-decoration:hover {cursor: pointer;} in styled-components