+[NSPredicate predicateWithBlock:]的声明如下所示:

+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block

Apple的文档文档中的第二个参数bindings表示为:



我无法弄清楚为什么需要此参数-也没有看到它在任何地方使用。为什么在那儿?

另外,当将基于块的谓词与bindings一起使用时,我是否需要查看-[NSArray filteredArrayUsingPredicate:]

最佳答案

请参阅类(class)文档:



然后 checkout predicate syntax docs

如果您随后要调用evaluateWithObject:substitutionVariables:,则该字典将传递到您的块中。这可以实现相当通用的谓词创建,其中可以传递结果谓词,并且可以使用一致的替换语言进行评估。

10-07 22:48