Cha*_*pta 21 cocoa cocoa-touch objective-c nspredicate
声明+[NSPredicate predicateWithBlock:]如下:
+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block
Run Code Online (Sandbox Code Playgroud)
Apple的块的第二个参数的文档bindings说,它是:
替换变量字典.字典必须包含接收器中所有变量的键值对.
我无法弄清楚为什么需要这个参数 - 我也没看到它被用在任何地方.为什么会这样?
另外,bindings在使用基于块的谓词时,是否需要查看内部-[NSArray filteredArrayUsingPredicate:]?
bbu*_*bum 11
请参阅课程文档:
您还可以创建包含变量的谓词,以便在运行时替换具体值之前可以预定义谓词.在Mac OS X v10.4中,对于使用变量的谓词,评估是一个两步过程(请参阅predicateWithSubstitutionVariables:和evaluateWithObject :).在Mac OS X v10.5及更高版本中,您可以使用evaluateWithObject:substitutionVariables:,它结合了这些步骤.
然后查看谓词语法docs.
如果您随后调用evaluateWithObject:substitutionVariables:,则会将字典传递给您的块.这样可以创建相当通用的谓词创建,其中可以传递结果谓词,并且可以使用一致的替换语言进行评估.
| 归档时间: |
|
| 查看次数: |
4984 次 |
| 最近记录: |