当前位置:首页 > 开发教程 > 手机开发 >

NSPredicate文档中文翻译

时间:2015-04-27 21:19 来源: 作者: 收藏

由于觉得网上对于NSPredicate讲解比较粗略,所以打算先看苹果官方文档(如有错误,欢迎指正)。概览 NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索。 您可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤。虽然从 NSCom        由于觉得网上对于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 > 12
ANY 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;

参数

block
         block施加于被评估的对象。
         block带有两个参数:
          evaluatedObject:被评估的对象。
         bindings:替换变量的字典。字典必须包含接收器中所有变量的键值对。
         如果evaluatedObject的计算结果为true,该块返回YES,否则为NO 。

返回值

        一个评估对象使用了块的谓词。              

特殊考虑

        在os X v10.6.Core Data 在内存和原子存储中支持这个方法,但是基于SQLite的存储是不支持的。

有效性

        4.0及以后有效

声明于

        NSPredicate.h
 

2.predicateWithFormat:

       由给定的格式和解析结果创建一个新的字符串来创建并返回一个新的谓词。
+ (NSPredicate *)predicateWithFormat:(NSString *)format, ...

参数

      format:新谓词的格式字符串。
      ...:以逗号分隔的参数列表。

返回值

      一个新的谓词,由创建一个新的格式字符串并且解析这个结果(即那个新的格式字符串)所得。

讨论

      格式字符串的格式和变量替换的限制,请参阅 Predicate Format String Syntax。

有效性

      IOS 3.0及以后有效。

相关的代码例子

      ThreadedCoreData
      ToolbarSearch
      WeatherMap
 

声明于

      NSPredicate.h
 

3.predicateWithFormat:argumentArray:

     创建并且返回一个新的谓词,通过把数组里面的值传入到格式字符串中并且解析所得。
+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat argumentArray:(NSArray*)arguments

参数

      predicateFormat:新谓词的格式字符串。
      arguments:要代入格式字符串的数组。代入的时候数组里的值按照数组里的顺序。

返回值

      一个新的谓词,通过把数组中的值按顺序代入格式字符串并解析所得。

讨论

      格式字符串的格式和变量替换的限制,请参阅 Predicate Format String Syntax。

有效性

      IOS 3.0及以后有效。

声明于

      NSPredicate.h
 

4.predicateWithFormat:arguments:

      创建并且返回一个新的谓词,通过把参数列表中的参数代入格式字符串中并且解析得到。

参数

      predicateFormat:新谓词的格式字符串。
      argList:代入格式谓词中的内容。参数列表代入顺序即它们出现在列表中的顺序。

返回值

      一个新的谓词,通过把参数列表中的值按顺序代入格式字符串并解析所得。

讨论

      格式字符串的格式和变量替换的限制,请参阅 Predicate Format String Syntax。

有效性

      IOS 3.0及以后有效。

声明于

      NSPredicate.h

5.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.h
 

2.evaluateWithObject:substitutionVariables:

 
      返回一个给定的BOOL值,用于指示一个给定的对象在一个给定的变量字典中的值代入后是否匹配接收者的特殊条件。
- (BOOL)evaluateWithObject:(id)object substitutionVariables:(NSDictionary *)variables

参数

      objec:接收者评估的对象。
      variables:替换变量的字典。字典必须包含接收者所有变量的键值对。

返回值

      全部匹配返回YES,否则NO.

讨论

      此方法和那两个步骤"首先引用接收者的predicateWithSubstitutionVariables:然后引用返回的谓词的 evaluateWithObject:"返回的结果一样。此方法在反复评估不同变量替换的谓词情况下被优化。

有效性

      IOS 3.0及以后有效。

声明于

      NSPredicate.h

3.predicateFormat

      返回接收者的格式字符串。
- (NSString *)predicateFormat

返回值

      接收者的格式字符串

特殊考虑

      用这个方法返回的字符串不能够保证和使用predicateWithFormat:等方法返回的字符串一样。你不能用这个方法来创建一个谓词的持久化表示,但是你可以用它来再现原始谓词。如果你需要一个谓词的持久化表示,你可以创建一个archive(NSPredicate采用NSCoding协议)

有效性

      IOS 3.0及以后有效。

声明于

      NSPredicate.h
 

4.predicateWithSubstitutionVariables:

      通过用给定的替换字典中的值替换接收者的变量,返回接收者的副本。
- (NSPredicate *)predicateWithSubstitutionVariables:(NSDictionary *)variables

参数

      variables:替换变量字典。字典必须包含接收者素有变量的键值对。

返回值

      接收者的值被特殊变量替换所返回的接收者副本。

讨论

      接收者本身不会被方法所改变,所以你可以重复使用任意数量的替换。

有效性

      IOS 3.0及以后有效。

声明于

      NSPredicate.h
具体实例请参照网上的例子

安卓开发复习笔记——Fragment+FragmentTab

2014年最新720多套Android源码2.0GB免费一

开源直播系统源码功能一览表(含ios+androi

直播系统开发中低延迟优化方面的部分技巧

Android Hook 机制之简单实战

直播平台开发中美颜、滤镜的技术要求

直播源码的崛起的巅峰:布谷一对一视频直播

直播系统开发中视频采集的技术分析

手机直播系统开发的实时网络通信技术的要求

短视频平台开发中视频编码如何解决延迟优化

值得安卓开发者收藏的Android 开源项目分类

怎样保证直播平台开发完成后程序的稳定性?

手机开发阅读排行

最新文章