holydancer原创,如需转载,请在显要位置注明:
转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7380799
在语言上,谓语,谓词是用来判断的,比如“我是程序猿”中的是,就是表判断的谓语,“是”就是一个谓词,在objective-c中,应该说在COCOA中的NSPredicate表示的就是一种判断。一种条件的构建。我们可以先通过NSPredicate中的predicateWithFormat方法来生成一个NSPredicate对象表示一个条件,然后在别的对象中通过evaluateWithObject方法来进行判断,返回一个布尔值。还是看代码简单明了:
- #import <Foundation/Foundation.h>
- @interface Human :NSObject
- {
- NSString *name;
- int age;
- Human *child;
- }
- @property (copy)NSString *name;
- @property int age;
- @end
- @implementation Human
- @synthesize name;
- @synthesize age;
- @end
- int main(int argc, const char * argv[])
- {
- @autoreleasepool {
- //利用kvc进行对象初始化
- Human *human = [[Human alloc]init];
- Human *child = [[Human alloc]init];
- [human setValue:@"holydancer" forKey:@"name"];
- [human setValue:[NSNumber numberWithInt:20] forKey:@"age"];
- [human setValue:child forKey:@"child"];
- [human setValue:[NSNumber numberWithInt:5] forKeyPath:@"child.age"];
- NSPredicate *predicate1=[NSPredicate predicateWithFormat:@"name=='holydancer'"];//创建谓词判断属性
- NSPredicate *predicate2=[NSPredicate predicateWithFormat:@"child.age==5"];//创建谓词判断属性的属性
- //此处在创建谓词时可以有好多种条件写法,比如大小比较,范围验证,甚至像数据库操作那样的like运算符,这里就不一一列举了
- BOOL tmp1=[predicate1 evaluateWithObject:human];//验证谓词是否成立,得到布尔返回值
- BOOL tmp2=[predicate2 evaluateWithObject:human];
- if (tmp1) {
- NSLog(@"human对象的name属性为'holydancer'");
- }
- if (tmp2) {
- NSLog(@"human对象的child属性的age为5");
- }
- }
- return 0;
- }
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属性的age为5
关键字:objective-c ,objective c, oc ,谓词 ,NSPredicate ,IPhone开发基础 .
好了,写到这里大家就会发现谓词的用法其实很简单,语法结构有点儿类似之前我们介绍的KVC,灵活多变,我们暂且掌握到这里便足够了。另外,到今天为止,我们的objective-c基础就告一段落了,马上我要推出IPhone开发的教学博客,希望大家继续关注。如果我之前的博客有什么错误的地方或者不够清楚的,可以评论告诉我,最后,感谢关注。
相关推荐
Cocoa编程经典的入门书籍,图文讲解,易于学习
第 1 章,也就是本章 第 2 章,从 Hello,World!开始 第 3 章,类的声明和定义 第 4 章,继承 第 5 章,Class 类型,选择器 Selector 以及函数指针 第 6 章,NSObject 的奥秘 第 7 章,对象的初始化以及实例变量的作用域 ...
Objective-C的语法与Cocoa框架.pdf,挺不错的教程
Cocoa and Objective-C Cocoa and Objective-CCocoa and Objective-C Cocoa and Objective-C
NULL 博文链接:https://justcoding.iteye.com/blog/1352402
1. GNUStep的安装 2. 类定义 3. Objective-C中的布尔类型 4. Objective-C中的null 5. 与C混合编写 6. 对象的初始化 7. Objective-C的description方法 8. Objective-C的异常处理 ...20. 谓词NSPredicate
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Amazon超级畅销书,好评如潮,全面解读Objective-C语言及Cocoa特性,用最通俗的语言阐释深奥的知识。 Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。 本书结合理论知识与示例程序,全面...
Using Swift With Cocoa and Objective-C中文版,OC和Swift混合使用
you learn Objective- C in this book, you’ll be ready to dive into Cocoa with a full- blown project or another book such as Learn Cocoa on the Mac or Begin- ning iPhone Development, both by Dave Mark...
Cocoa多线程开发Objective-C详解 多线程 Objective-C iOS cocoa Xcode
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Using Swift with Cocoa and Objective-C (Swift 4) EN.epub 去除 DRM
iOS 7 Programming Fundamentals: Objective-C, Xcode, and Cocoa Basics by Matt Neuburg (Author) Publisher: O’Reilly Media (October 2013) Language: English ISBN-10: 1491945575 ISBN-13: 978-...
第四部分是附录,主要列出了Objective-C的快速参考。 《Objective-C2.0程序设计(原书第2版)》结构合理、内容翔实,简单易学,既适合程序设计初学者和所有程序员阅读,也可作为程序设计语言课题的入门教材。
《Objective-C基础教程》结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的...
Cocoa入门-使用Objective-C助您轻松体验...Cocoa入门-使用Objective-C包含了Cocoa框架的最新更新,还包括了便利的API速查参考卡,以及在附录中给出很多重要资源,对任何Cocoa开发人员无论初学者还是高手都很重要。
《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等...
iOS 和 macOS 性能优化书。iOS and macOS Performance Tuning Cocoa, Cocoa Touch, Objective-C, and Swift
It will show them how to take their existing language knowledge and design patterns and transfer that experience to Objective-C and the Cocoa runtime library. This is the express train to ...