CoreData - NSPredicate results if relationship has data
我在表之间有多对多关系,并且我在Activity中填充了tableView。
为此,我使用一个像这样的简单NSPredicate:
1 | request.predicate = [NSPredicate predicateWithFormat:@"deleted == %@", [NSNumber numberWithBool:NO]]; |
我该怎么做才能仅显示已附加会员的活动?
我认为在NSPredicate中,我必须做一些计数,以便仅返回count> 0的Activity。是这样吗?
怎么样?
(我是coredata的新手...)
谢谢,
RL
您需要向作用于CompanyActivity实体的谓词添加一个子查询,如下所示:
1 | [[NSPredicate predicateWithFormat:@"deleted == %@" && (0 >= SUBQUERY(Members, $sub, $sub.deleted == %@).@count)", [NSNumber numberWithBool:NO] [NSNumber numberWithBool:NO]]; |
谓词的第一部分返回尚未删除的对象,与子查询相关的第二部分将负责检索其成员尚未删除的所有那些CompanyActivity对象。