NSPredicate文档中文翻译
由于觉得网上对于NSPredicate讲解比较粗略,所以打算先看文档,奈何英语水平有限,故先翻译一遍,加深理解(如有错误,欢迎指正)。概览NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索。您可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤。虽然从 NSComparisonPredicate, NSCompoundPredicate, 和 NSExpression的实例直接创建谓词是常见的,但是你会经常用NSPredicate的类方法解析的格式字符串来创建谓词。谓词格式字符串的例子包括:简单的比较, 比如 grade== "7" 或者 firstNamelike "Shaffiq"不区分大小写和音调的查找, 比如 namecontains[cd] "itroen"逻辑运算, 比如 (firstName like "Mark") OR (lastName like "Adderley")In OS X v10.5 and later, you can create €œbetween€ predicates such as datebetween {$YESTERDAY, $TOMORROW}.您可以创建关系谓词,比如:group.name like "work*"ALL children.age > 12ANY children.age > 12您可以创建谓词操作,比如@sum.items.price < 1000 。完整语法参考,请参阅“谓词编程指南” 。您也可以创建包含变量的谓词,那样谓词就可以在运行时(runtime)替换具体值之前预先定义。在os x v10.4,含变量的谓词,估算是一个两步骤的过程 (see predicateWithSubstitutionVariables: and evaluateWithObject:)。在os x v10.5及以后,你可以使用 evaluateWithObject:substitutionVariables:,它结合了这些步骤。任务创建谓词:[plain] view plaincopy+ predicateWithFormat:+ predicateWithFormat:argumentArray:+ predicateWithFormat:arguments:– predicateWithSubstitutionVariables:+ predicateWithValue:+ predicateWithBlock:评估一个谓词:[plain] view plaincopy– evaluateWithObject:– evaluateWithObject:substitutionVariables:获取字符串表现形式:[plain] view plaincopy– predicateFormat类方法1.predicateWithBlock:创建并返回一个谓词,评估使用指定的块对象和绑定的字典。+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block;参数blockblock施加于被评估的对象。block带有两个参数:evaluatedObject:被评估的对象。bindings:替换变量的字典。字典必须包含接收器中所有变量的键值对。如果evaluatedObject的计算结果为true,该块返回YES,否则为NO 。返回值一个评估对象使用了块的谓词。特殊考虑在os X v10.6.Core Data 在内存和原子存储中支持这个方法,但是基于SQLite的存储是不支持的。有效性4.0及以后有效声明于NSPredicate.h2.predicateWithFormat:由给定的格式和解析结果创建一个新的字符串来创建并返回一个新的谓词。+ (NSPredicate *)predicateWithFormat:(NSString *)format, ...参数format:新谓词的格式字符串。...:以逗号分隔的参数列表。返回值一个新的谓词,由创建一个新的格式字符串并且解析这个结果(即那个新的格式字符串)所得。讨论格式字符串的格式和变量替换的限制,请参阅 Predicate Format String Syntax。有效性IOS 3.0及以后有效。相关的代码例子ThreadedCoreDataToolbarSearchWeatherMap声明于NSPredicate.h3.predicateWithFormat:argumentArray:创建并且返回一个新的谓词,通过把数组里面的值传入到格式字符串中并且解析所得。+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat argumentArray:(NSArray*)arguments参数predicateFormat:新谓词的格式字符串。arguments:要代入格式字符串的数组。代入的时候数组里的值按照数组里的顺序。返回值一个新的谓词,通过把数组中的值按顺序代入格式字符串并解析所得。讨论格式字符串的格式和变量替换的限制,请参阅 Predicate Format String Syntax。有效性IOS 3.0及以后有效。声明于NSPredicate.h4.predicateWithFormat:arguments:创建并且返回一个新的谓词,通过把参数列表中的参数代入格式字符串中并且解析得到。参数predicateFormat:新谓词的格式字符串。argList:代入格式谓词中的内容。参数列表代入顺序即它们出现在列表中的顺序。返回值一个新的谓词,通过把参数列表中的值按顺序代入格式字符串并解析所得。讨论格式字符串的格式和变量替换的限制,请参阅 Predicate Format String Syntax。有效性IOS 3.0及以后有效。声明于NSPredicate.h5.predicateWithValue:通过评估一个给定的值来创建并返回一个谓词。+ (NSPredicate *)predicateWithValue:(BOOL)value参数value:新谓词需要评估的值。返回值评估一个值得到的谓词。有效性IOS 3.0及以后有效。声明于NSPredicate.h实例方法1.evaluateWithObject:返回一个给定的BOOL值,用于指示一个给定的对象是否匹配接收者的特殊条件。- (BOOL)evaluateWithObject:(id)object参数objec:接收者评估的对象。返回值如果对象匹配接收者特殊条件则返回YES,否则NO.有效性IOS 3.0及以后有效。声明于NSPredicate.h2.evaluateWithObject:substitutionVariables:返回一个给定的BOOL值,用于指示一个给定的对象在一个给定的变量字典中的值代入后是否匹配接收者的特殊条件。- (BOOL)evaluateWithObject:(id)object substitutionVariables:(NSDictionary *)variables参数objec:接收者评估的对象。variables:替换变量的字典。字典必须包含接收者所有变量的键值对。返回值全部匹配返回YES,否则NO.讨论此方法和那两个步骤"首先引用接收者的predicateWithSubstitutionVariables:然后引用返回的谓词的 evaluateWithObject:"返回的结果一样。此方法在反复评估不同变量替换的谓词情况下被优化。有效性IOS 3.0及以后有效。声明于补充:移动开发 , IOS ,
上一个:iOS设计模式----委托模式
下一个:IOS测试网络状态
- 更多wap疑问解答:
- 新人求助QPainter
- 为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
- qt 4.7 sqlserver2000 存储过程调用
- 关于ANDROID4.0.1编译问题!
- Android FrameBuffer读屏幕30秒后mmap失败
- 联通粗定位用java程序如何来请求和接受数据
- 为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
- android与PC蓝牙通讯
- 指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
- Android调试
- android如何通过wifi连接无线打印机
- 运行程序,release目录下产生一个乱码文件夹
- 分享个某机构最新安卓资料,自己验证了
- service启动不起来,掉不了service connection
- 求助:QT5.0 没有QPrinter吗