`
shuai1234
  • 浏览: 972858 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

objective-c中使用cocoa的NSPredicate,谓词(十四)

 
阅读更多

holydancer原创,如需转载,请在显要位置注明:

转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7380799

 

在语言上,谓语,谓词是用来判断的,比如“我是程序猿”中的是,就是表判断的谓语,“是”就是一个谓词,在objective-c中,应该说在COCOA中的NSPredicate表示的就是一种判断。一种条件的构建。我们可以先通过NSPredicate中的predicateWithFormat方法来生成一个NSPredicate对象表示一个条件,然后在别的对象中通过evaluateWithObject方法来进行判断,返回一个布尔值。还是看代码简单明了:

 

[plain] view plaincopy
 
  1. #import <Foundation/Foundation.h>  
  2. @interface Human :NSObject  
  3. {  
  4.     NSString *name;  
  5.     int age;  
  6.     Human *child;  
  7.       
  8. }  
  9. @property (copy)NSString *name;  
  10. @property int age;  
  11. @end  
  12. @implementation Human  
  13. @synthesize name;  
  14. @synthesize age;  
  15.   
  16.   
  17. @end  
  18. int main(int argc, const char * argv[])  
  19. {  
  20.   
  21.     @autoreleasepool {  
  22.         //利用kvc进行对象初始化  
  23.         Human *human = [[Human alloc]init];  
  24.         Human *child = [[Human alloc]init];  
  25.         [human setValue:@"holydancer" forKey:@"name"];  
  26.         [human setValue:[NSNumber numberWithInt:20] forKey:@"age"];  
  27.         [human setValue:child forKey:@"child"];  
  28.         [human setValue:[NSNumber numberWithInt:5] forKeyPath:@"child.age"];  
  29.           
  30.         NSPredicate *predicate1=[NSPredicate predicateWithFormat:@"name=='holydancer'"];//创建谓词判断属性  
  31.         NSPredicate *predicate2=[NSPredicate predicateWithFormat:@"child.age==5"];//创建谓词判断属性的属性  
  32.         //此处在创建谓词时可以有好多种条件写法,比如大小比较,范围验证,甚至像数据库操作那样的like运算符,这里就不一一列举了  
  33.           
  34.         BOOL tmp1=[predicate1 evaluateWithObject:human];//验证谓词是否成立,得到布尔返回值  
  35.         BOOL tmp2=[predicate2 evaluateWithObject:human];  
  36.         if (tmp1) {  
  37.             NSLog(@"human对象的name属性为'holydancer'");  
  38.         }  
  39.         if (tmp2) {  
  40.             NSLog(@"human对象的child属性的age为5");  
  41.   
  42.         }  
  43.           
  44.   }  
  45.     return 0;  
  46. }  

 

 

2012-03-21 19:59:42.668 predicate[2246:403] human对象的name属性为'holydancer'

2012-03-21 19:59:42.670 predicate[2246:403] human对象的child属性的age5

 

关键字:objective-c ,objective c, oc ,谓词 ,NSPredicate  ,IPhone开发基础 .

 

好了,写到这里大家就会发现谓词的用法其实很简单,语法结构有点儿类似之前我们介绍的KVC,灵活多变,我们暂且掌握到这里便足够了。另外,到今天为止,我们的objective-c基础就告一段落了,马上我要推出IPhone开发的教学博客,希望大家继续关注。如果我之前的博客有什么错误的地方或者不够清楚的,可以评论告诉我,最后,感谢关注。

分享到:
评论

相关推荐

    Learning Cocoa With Objective-C

    Objective-C是Cocoa的主要编程语言,它扩展了C语言,引入了面向对象的特性,如消息传递和类别。 本书首先会引导读者了解Objective-C的基础,包括语法、类、对象以及内存管理。然后,它会深入Cocoa的核心组件,如...

    Objective-C的语法与Cocoa框架.pdf

    Objective-C语法的基石是C语言的语法结构,这意味着所有的C语言代码都可以在Objective-C中直接使用。但是,Objective-C在C的基础上新增了消息传递机制,这是它与C语言的一个重要区别。在Objective-C中,方法调用是...

    Objective-C 2.0 with Cocoa Foundation(中文)

    ### Objective-C 2.0 与 Cocoa Foundation:深入学习指南 #### 第 1 章:Objective-C 与 Cocoa Foundation 入门 ##### 1.1 Objective-C 的基础概述 Objective-C 是一种面向对象的编程语言,它是在 C 语言的基础上...

    Objective-C 2.0 with Cocoa Foundation--- 8,类方法以及私有方法

    Objective-C 2.0是Apple开发的面向对象的编程语言,它是Cocoa和Cocoa Touch框架的基础。在Objective-C中,类方法(Class Methods)和私有方法(Private Methods)是两个重要的概念,它们对于理解和编写高效、安全的...

    Using-Swift-with-Cocoa-and-Objective-C(4.1)

    "Using Swift with Cocoa and Objective-C(4.1)"是Apple官方发布的文档,旨在帮助开发者理解如何在同一个项目中有效地结合使用Swift和Objective-C。这份文档详细介绍了两者之间的差异、互操作性、以及混合编译过程中...

    《Objective-C基础教程》中文版(含源代码)

    《Objective-C基础教程》是一本面向初学者的编程书籍,主要涵盖了Objective-C语言的基本概念、语法和编程实践,尤其适合那些想要踏入iOS应用开发领域的学习者。Objective-C是Apple公司开发的面向对象的编程语言,它...

    Objective-C高级编程 iOS与OS X多线程和内存管理_Objective-C_ios_

    书中还可能涵盖Block(代码块)的使用,这是Objective-C中一种强大的语法特性,常用于多线程和异步编程,因为它可以捕获和封装变量的上下文。另外,可能会讲解到Cocoa Touch和Cocoa框架中的线程安全类和方法,以及...

    Objective-C 2.0 运行时系统编程指南

    6. **类型编码**:讨论了Objective-C中类型编码的使用和作用。 7. **属性声明**:解释了如何声明和使用属性,特别是Objective-C 2.0中引入的新特性。 #### 运行时系统的版本和平台 Objective-C运行时系统有两个...

    Objective-C 2.0 with Cocoa Foundation --- 2,从Hello,World!开始

    Objective-C 2.0是Apple开发的面向对象的编程语言,它是Cocoa和Cocoa Touch框架的基础,用于构建iOS和macOS应用程序。本教程将深入探讨Objective-C 2.0与Cocoa Foundation的结合,从经典的"Hello, World!"程序开始,...

    Objective-C.2.0 中文版.pdf & Objective-C.chm

    可能涵盖了语言的基本语法、类和对象的概念、消息传递机制、内存管理(在Objective-C中是ARC,即自动引用计数)、类别、协议、 Blocks、GCD(Grand Central Dispatch)以及Cocoa或Cocoa Touch框架的使用。...

    Objective-C 2.0 with Cocoa Foundation--- 4,继承

    本节将深入探讨Objective-C 2.0中的继承机制,以及如何在Cocoa Foundation框架下使用它。 ### 继承的概念 继承是面向对象编程的一个关键特性,允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和行为。...

    Objective-C基础教程源代码 Learn objective-C on the Mac Mark Dalrymple著书

    Objective-C是一种强大的面向对象编程语言,特别是在Apple的iOS和macOS平台上广泛使用。它是C语言的超集,融入了Smalltalk的关键概念,如消息传递和动态类型。《Learn Objective-C on the Mac》由Mark Dalrymple撰写...

    Objective-C的语法与Cocoa框架

    1. GNUStep的安装 2. 类定义 3. Objective-C中的布尔类型 4. Objective-C中的null 5. 与C混合编写 6. 对象的初始化 7. Objective-C的description方法 8. Objective-C的异常处理 ...20. 谓词NSPredicate

    Objective-C基础教程 中文 PDF 清晰版 [31M]

    本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...

    Objective-C基础教程+随书源代码

    Amazon超级畅销书,好评如潮,全面解读Objective-C语言及Cocoa特性,用最通俗的语言阐释深奥的知识。  Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。  本书结合理论知识与示例程序,全面...

Global site tag (gtag.js) - Google Analytics