• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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属性的age5

 

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

 

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
分享一个自己用的Objective-C的Http接连类发布时间:2022-07-12
下一篇:
学习objective-c的一些特殊的地方发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap