我有一个核心数据模型如下 1.任务实体:属性objDueDate,关系objRecurrence等。 2.重复实体:属性objEndDate,objStartDate,关系任务等。
任务与重复具有多对一关系。重复与Task具有相反的一对多关系。我希望通过编写NSFetchRequest谓词来查询递归序列的最后一个任务,如下所示
NSPredicate* lobjPredicate = [NSPredicate predicateWithFormat:"objDueDate == objRecurrence.tasks.@max.objDueDate"]
此操作失败并显示错误
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无法为谓词生成SQL(objDueDate == max:(objRecurrence.tasks.objDueDate))
任何人都可以解释为什么这不起作用?
提前致谢....
场景说明:
我希望显示按类别排序的任务。我还强制要求,如果您将任务重复出现,则重复中的所有任务将共享相同的类别。现在有两组任务:一组有重复,一组没有重复。现在出现了一个递归序列(比如说A)我只希望向用户呈现一个任务。如果序列中的所有任务都已标记为已完成,那么我希望将最后完成的任务呈现给用户。如果序列中的某些任务已标记为已完成,那么我希望向用户显示第一个不完整的任务。
如何解决方案???
答案 0 :(得分:0)
我有一个简化的想法,可避免此错误:获取按dueDate排序的一次重复的任务,并将fetchLimit
设置为1。
答案 1 :(得分:0)
我不确定为什么你在谓词中同时使用objRecurrence和tasks。如果它们彼此相反,那么您只需要遍历任务实体关系(objRecurrence)。这可能会解决您的问题。