在我的应用中,一个审核有很多结果。
我有一个返回NSPredicate的方法,该方法按搜索文本和类型ID过滤结果:
+ (NSPredicate)predicateWithSearchText:(NSString *)searchText typeId:(NSNumber *)typeId;
我想使用这个谓词根据他们的发现的属性过滤一系列Audits。因此,给定第一个方法的输出,我想创建一个等同于:
的新谓词[NSPredicate predicateWithFormat:@"SUBQUERY(findings, $x, ????).@count > 0"]
...其中????
将我现有的谓词应用于审计结果。
如何在不公开+predicateWithSearchText:typeId:
内的逻辑的情况下执行此操作?
答案 0 :(得分:0)
这就是你要找的东西吗?
- (void)sampleMethod:(NSPredicate *)predicateWithSearchText {
NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
BOOL auditFinding = [self auditFinding:object];
BOOL predFinding = [predicateWithSearchText evaluateWithObject:object];
return auditFinding && predFinding;
}];
}