zoukankan      html  css  js  c++  java
  • Objective-C(十八、谓语使用及实例说明)——iOS开发基础


    结合之前的学习笔记以及參考《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"
    )
    
  • 相关阅读:
    -Dmaven.test.skip=true 和 -DskipTests
    mysql 生成指定范围随机数
    Delphi 6 保存窗体设置
    Sql server left join,right join和inner join的比较
    Mysql配置文件my.ini详解
    网络游戏MMORPG服务器架构
    彻底删除SVN版本库中部分文件或文件夹
    高负载高并发应用 参考索引 地址
    Linux计划任务入门详解
    Linux下SVN的三种备份方式
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5176767.html
Copyright © 2011-2022 走看看