[示例]NSPredicate基础-查询数组中负荷条件的子集

代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        /*
         简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。
         定义(最常用到的方法):
         NSPredicate这个类有点类似于数据库中的查询,是用于在一批内容中查询符合条件的子集,中文翻译成“谓词”。这个翻译实在让我感觉很别扭,虽然明知道和谓语这个词语没什么关系,但确实总让我感觉这是一个句子里面的成分。
         我们有些时候会有一个对象的数组或者集合,然后希望从里面找出符合条件的集合,类似于做一次过滤操作。比如我有一批照片,希望能找出所有某一天里面拍摄的内容。
         NSPredicate类的创建往往使用predicateWithFormat的方法,这个方法的使用有点类似于stringWithFormat方法。
         */
        //查询数组中含有“ang”的字符串
        NSArray *array = [[NSArray alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan", nil];
        NSString *string = @"ang";
        NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",string];
        NSLog(@"%@",[array filteredArrayUsingPredicate:pred]);    ;
        //查找名字里面包含“王”的姓
        NSArray *array1 = [[NSArray alloc]initWithObjects:@"小王",@"王力",@"李丽",@"方方", nil];
        NSString *match = @"*王*";
        //查找姓王的名字,王字必须为首字则修改NSString *[email protected]"王*";
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@", match];

        NSArray *results = [array1 filteredArrayUsingPredicate:predicate];
        for (id str in results) {
            NSLog(@"%@",str);
        }
    }
    return 0;
}
时间: 2024-10-08 22:37:02

[示例]NSPredicate基础-查询数组中负荷条件的子集的相关文章

in_array 查询数组中是否存在某个值

(PHP 4, PHP 5) in_array — 检查数组中是否存在某个值 说明 bool in_array ( mixed $needle , array $haystack [, bool $strict ] ) 在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE. 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和haystack 中的相同. Note: 如果 needle 是字符串,

如何高效的查询数组中是否包含某个值

一.有四种方式查询数组中是否包含某个值 1.使用List public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); } 2.使用Set public static boolean useSet(String[] arr, String targetValue) { Set<String> set = new HashSet&

C语言--查询数组中出现次数最多的元素

查询数组中出现次数最多的元素 #include <stdio.h> #include <malloc.h> #include <stdlib.h> int max_count_num(int * arr, int len); int main() { int arr[5] = {1, 1, 1, 3, 1 }; max_count_num(arr, 5); return 0; } int max_count_num(int * arr, int len) { int i

JavaScript基础 使用for循环遍历数组 并 查询 数组中是否存在指定的值

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

iOS 查询数组中的对象

通常情况下,根据一个条件在数组中查询出匹配的对象的方式有如下几种: (1)遍历数组,然后将每一个Item和这个条件进行比对,过滤出匹配的对象 显然这个效率比较低 (2)iOS提供另一个效率较高的查询方法,谓词NSPredicate,使用方法如下 C代码 收藏代码 1.NSString 对象 NSArray *array [email protected]["123", @"234" , @"345"]; NSPredicate *predicat

linq 在查询表达式中处理异常

在查询表达式的上下文中可以调用任何方法. 但是,我们建议避免在查询表达式中调用任何会产生副作用(如修改数据源内容或引发异常)的方法. 此示例演示在查询表达式中调用方法时如何避免引发异常,而不违反有关异常处理的常规 .NET Framework 指南. 这些指南阐明,当你理解在给定上下文中为何会引发异常时,捕获到该特定异常是可以接受的. 有关详细信息,请参阅异常的最佳做法. 最后的示例演示了在执行查询期间必须引发异常时,该如何处理这种情况. 示例 在某些情况下,针对由查询内部引发的异常的最佳措施可

NSPredicate用法总结(Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取)

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): [objc] view plaincopy NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format:(1)比较运算符>,<,==,>=,<=,!=可用于数值及字符串例:@"number > 100" (2)范围

JavaSE7基础 找到一维数组中指定数值(第一次出现)的索引值 do-while循环实现

版本参数:jdk-7u72-windows-i586注意事项:博文内容仅供参考,不可用于其他用途. 代码 class Demo{ public static void main(String[] args){ int[] myArr={1,3,4,6,7};//奇数个 int num1=3,num2=100; System.out.println(getIndexOfNum(myArr,num1)); System.out.println(getIndexOfNum(myArr,num2));

转发:使用sql命令查询视图中所有引用的基础表

转自:使用sql命令查询视图中所有引用的基础表 使用sql命令查询视图中所有引用的基础表 之前有写过如何利用sql查询视图中所有引用的表发现这个方法并不能查出视图中所有的基础表,如果视图中有嵌套视图就会有问题,因为目录视图sys.sql_dependencies并不包含所有的引用实体.后面发现在sql2008及以后的版本中推出的sys.sql_expression_dependencies视图解决了这一问题,所以重新写了段sql,用来查询视图中所有引用的基础表,包括嵌套视图中的基础表.这个有什么