Objective-C(十八、谓语使用及实例说明)——iOS开发基础

原创 2015年07月09日 20:28:19

结合之前的学习笔记以及参考《Objective-C编程全解(第三版)》,对Objective-C知识点进行梳理总结。知识点一直在变,只是作为参考,以苹果官方文档为准~


十八、谓语的使用及实例说明


首先先介绍基本常用的谓词:
(1)逻辑运算符 && AND || OR 都可以用
(2)IN包含
(3)模糊查询
a、以……开头 BEGINSWITH
b、以……结尾 ENDSWITH
c、包含….字符 CONTAINS
(4)用like进行模糊查询
通配符:*表示任意个字符 ?表示单个字符

like *aa结尾
like a*  以a开头
like *a* 包含a字符
like ?a* 第二个字符为a的字符串

实例说明:


创建Book类,Book.h

@interface Book : NSObject
{
    NSInteger _price;
    NSString* _bookName;
}

- (instancetype)initWithPrice:(NSInteger)price andBookName:(NSString *)bookName;

@end

Book.h

#import "Book.h"

@implementation Book

- (instancetype)initWithPrice:(NSInteger)price andBookName:(NSString *)bookName {
    if (self = [super init]) {
        _price = price;
        _bookName = bookName;
    }
    return self;
}

- (NSString *)description {

    return [NSString stringWithFormat:@"Book price:%li,named %@",_price,_bookName];
}

@end

main.m

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Book* book1 = [[Book alloc] initWithPrice:20 andBookName:@"C Programming"];
        Book* book2 = [[Book alloc] initWithPrice:32 andBookName:@"C++ Programming"];
        Book* book3 = [[Book alloc] initWithPrice:18 andBookName:@"Java Programming"];
        Book* book4 = [[Book alloc] initWithPrice:45 andBookName:@"OC guiding"];
        Book* book5 = [[Book alloc] initWithPrice:28 andBookName:@"iOS guiding"];
        NSArray* books = [NSArray arrayWithObjects:book1,book2,book3,book4,book5, nil];

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"price > %i",30];
        NSArray *filterArray = [books filteredArrayUsingPredicate:predicate];
        NSLog(@"%@",filterArray);

//      逻辑运算符 和 IN
        predicate = [NSPredicate predicateWithFormat:@"bookName IN {'C Programming','C++ Programming'} AND price > 30"];
        filterArray = [books filteredArrayUsingPredicate:predicate];
        NSLog(@"%@",filterArray);

//      模糊查询 和 用通配符查询

        predicate = [NSPredicate predicateWithFormat:@"bookName CONTAINS 'guiding' || bookName like '*Program*' "]; //包含guiding或者包含Program
        filterArray = [books filteredArrayUsingPredicate:predicate];
        NSLog(@"%@",filterArray);



    }
    return 0;
}

output:

2015-07-09 20:17:24.403 exercise_谓语[632:9877] (
    "Book price:32,named C++ Programming",
    "Book price:45,named OC guiding"
)
2015-07-09 20:17:24.404 exercise_谓语[632:9877] (
    "Book price:32,named C++ Programming"
)
2015-07-09 20:17:24.407 exercise_谓语[632:9877] (
    "Book price:20,named C Programming",
    "Book price:32,named C++ Programming",
    "Book price:18,named Java Programming",
    "Book price:45,named OC guiding",
    "Book price:28,named iOS guiding"
)
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/zsk_zane

IOS的谓词语法小解

前言:        本篇博客,不在用太多的语言介绍,因为,介绍已经添加到代码中。现在。我们就直接上代码。如果,有不对的地方还请海涵。 第一、主代码: // //  ViewCon...

在ios项目中引入单元测试(上)

我们的项目在没有单元测试的情况下“裸奔”了一个月,今天决定将单元测试加进来 先在网上搜索了一下,发现有3个unit test的框架:XCTEST,OCTEST,GHTEST。由于也不是很了解,就先用X...
  • kyfxbl
  • kyfxbl
  • 2013年12月24日 17:53
  • 1949

Objective-C(十七、KVC键值编码及实例说明)——iOS开发基础

KVC键值编码结合实例,详细说明

Objective-C(二、类与isa指针,类的封装,set&get,类方法,对象方法)——iOS开发基础

类与isa指针,类定义和声明常见错误分析,类的封装,setter&getter方法,类方法与对象方法区别等等...

Objective-C(三、类与继承,基类,self、super关键字,多态,组合)——iOS开发基础

类与继承,继承优缺点及使用注意要点,基类; self、super作用及使用注意要点;多态产生条件及好处与限制; 继承与组合的区别……...

Objective-C(十一、不可变数组NSArray,可变数组NSMutableArray)——iOS开发基础

不可变数组NSArray,不可变数组NSMutableArray的常用方法,基础知识介绍

Objective-C(七、分类和延展)——iOS开发基础

分类和延展的语法,作用,实现,优缺点,使用注意要点等等

Objective-C(十二、快速枚举,枚举器NSEnumerator和集合类NSSet)——iOS开发基础

快速枚举,枚举器NSEnumerator和集合类NSSet的介绍和常用方法

Objective-C(十九、通知-消息发送模式之一)——iOS开发基础

通知-消息发送模式之一说明,通知中心,观察者注册、移除,与内存管理相关知识...

Objective-C(十三、字典类)——iOS开发基础

字典类,可变字典NSDictionary和不可变字典NSMutableDictionary的基本知识和常用方法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C(十八、谓语使用及实例说明)——iOS开发基础
举报原因:
原因补充:

(最多只允许输入30个字)