我的CoreDate DB的相关部分
Category<-->>Subcategory<-->>Gym<<-->>Membership
我正在努力让所有拥有至少一个健身房的类别,其中用户拥有活跃的会员资格。 我有一个包含所有用户的活动成员资格uid的数组(每个成员在数据库中都有一个uid) 我正在尝试以下无法编译的查询,我甚至将其确定为子字符串,以确保没有错误:
NSString *shopsSubquery = [NSString stringWithFormat:@"(SUBQUERY($y.programs,$z, $z.uid IN %@).@count > 0)",activeProgramsUIDsArray];
NSString *subcategorySubquery = [NSString stringWithFormat:@"(SUBQUERY($x.gyms,$y, %@).@count > 0)",shopsSubquery] ;
predicate = [NSPredicate predicateWithFormat:@"(SUBQUERY(subcategories, $x, %@).@count > 0)", subcategorySubquery];
编译器对问题的根源非常无益。我一直在重写这个谓词超过10次,有什么可以弄明白我错过了什么吗?
答案 0 :(得分:3)
混合stringWithFormat
和predicateWithFormat
容易出错,因为引用
和逃避规则是不同的。这可能有用(未经测试!):
[NSPredicate predicateWithFormat:@"SUBQUERY(subcategories, $x, SUBQUERY($x.gyms, $y, ANY $y.programs.uid IN %@).@count > 0).@count > 0", activeProgramsUIDsArray];