大家下午好
给出
常规(实体)
关系:工作日,目的地:工作日,倒数:例行程序
工作日(实体)
int(Integer)
关系:例程,目的地:常规,反向:平日
目标
过滤具有关系weekdays的所有例程,该关系包含其属性int等于您指定的Integer64的Weekday。
迄今为止的努力
// Constant
let weekDay = 1
// Attempt 1
let attemptedNSPredicate = NSPredicate(format: "ANY weekdays.int == %@", weekDay)
// Attempt 2
let attemptedNSPredicate = NSPredicate(format: "SUBQUERY(weekdays, weekday, weekday.int == %@", weekday)
// Attempt 3
let attemptedNSPredicate = NSPredicate(format: "ANY %K.int == %@", \Routine.weekdays, weekday)
您对此问题的解决方案是什么
func yourSolution(_ solution: NSPredicate) -> FetchRequset {
FetchRequest<Routine>(
entity: Routine.entity(),
sortDescriptors: [],
predicate: solution
)
)
1条答案
按热度按时间hxzsmxv21#
如果weekdays是一个Int 64属性,那么你应该告诉格式像这样使用它-〉%ld而不是%@。
所以#3将是正确的一个使用这个小修改:
在你的例子中,这种关系并没有太大的意义。工作日是一个有限的集合。所以将它作为一个枚举并直接将其用作例程的属性会使事情变得更简单,更快。