zoukankan      html  css  js  c++  java
  • NSPredicate 的使用

     

    NSPredicate:对self每个对象通过谓词进行筛选,判断是否与条件相匹配。作用相当于数据库的过滤取。主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配

    第一、contains 判断

             NSArray *array = [[ NSArray alloc ] initWithObjects : @"beijing" ,@"shanghai" , @"guangzou" , @"wuhan" , nil ];

            NSString *string = @"ang" ;

            NSPredicate *predicate=[ NSPredicate predicateWithFormat : @"SELF CONTAINS %@" ,string];

            NSArray *result=[array filteredArrayUsingPredicate :predicate];

            NSLog ( @"%@" ,result);

    第二、in 判断

             NSArray *array = [[ NSArray alloc ] initWithObjects : @"beijing" ,@"shanghai" , @"guangzou" , @"wuhan" , nil ];

            NSArray *fieltArr=[[ NSArray alloc ] initWithObjects : @"welcome" , @"to" ,@"beijing" , nil ];

            NSPredicate *predicate=[ NSPredicate predicateWithFormat : @"SELF in %@" ,fieltArr];

            NSArray *result=[array filteredArrayUsingPredicate :predicate];

            NSLog ( @"%@" ,result);

    第三、like运算

             NSString *str= @"badger" ;

            NSString *pattern= @"b??d*" ;

            NSPredicate *predicate=[ NSPredicate predicateWithFormat : @"SELF LIKE %@" ,pattern];

            if ([predicate evaluateWithObject :str])

            {

                NSLog ( @"YES" );

            } else

            {

                NSLog ( @"NO" );

            }

    第四、正则表达式

             NSString *pattern= @".*\_\d{3,5}×\d{3,5}.jpg$" ;

            NSPredicate *predicate=[ NSPredicate predicateWithFormat : @"SELF matches %@" ,pattern];

            NSString *str= @"fdas_300×50009.jpg" ;

            if ([predicate evaluateWithObject :str])

            {

                NSLog ( @"YES" );

            } else

            {

                NSLog ( @"NO" );

            }

  • 相关阅读:
    BM求递推式模板
    主席树浅谈
    DSU on Tree浅谈
    树链剖分浅谈
    省选模拟八 题解
    提答题 总结
    交互题 总结
    省选模拟七 题解
    省选模拟六 题解
    省选模拟五 题解
  • 原文地址:https://www.cnblogs.com/wuwangchuxin/p/3701694.html
Copyright © 2011-2022 走看看