zoukankan      html  css  js  c++  java
  • ios之过滤器,排序器

    NSPredicate(谓词,作为过滤器使用)

    过滤器的意思就是在一组数据中通过数组中元素的某个属性的值是多少,从而过滤出数组中这个值为多少的数组元素组。下面通过代码来说明一下吧

    NSPredicate *p = [NSPredicate predicateWithFormat: @"selected == YES"];
    // 通过selected属性来作为过滤的条件
            NSArray *selectedArray = [self.canDetailDataArray filteredArrayUsingPredicate: p];
    // 通过属性为selected==YES做为判断依据来过滤出数组中满足条件的所有元素
            self.selectedArray = selectedArray;
            [self reloadFooterViewFen];

     应用场景:例如我们的淘宝购物车有很多的订单,每个订单都会有一个是否要选中的属性,每选中一个订单下面显示支付的价格数据就会改变,便可以上面这种方法,很方便的就可以处理了!附上一张图吧

    NSSortDescriptor(排序器)

    NSMutableArray *array = [NSMutableArray array];  
    ··· 把含有date属性的模型数组赋值给array···
    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
    // 使用date属性作为排序的依据并因ascending为YES做升序排序
    [array sortUsingDescriptors:[NSArray arrayWithObject:sort]];           ps:NSSet的排序用法和NSArray用法类似

    应用场景:例如我们在做即时通讯的时候,我们相互聊天时数据库中有多条数据,这个时候就是要根据时间顺序进行排序,这个时候使用上面这种方法就可以很好的处理了!

    这个还是很强大的,也可以做多种的条件判断

    如:

    NSMutableArray *array = [NSMutableArray array];  
    ··· 把含有date属性price属性的模型数组赋值给array ···
    NSSortDescriptor *dateSort = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
    // 按日期升序 
    NSSortDescriptor *priceSort = [NSSortDescriptor sortDescriptorWithKey:@"price" ascending:YES];  
    // 按时间升序
    [array sortUsingDescriptors:[NSArray arrayWithObjects:sort1, sort2, nil]];  
    // 将array数组按日期顺序和价格从小到大进行排序

    很久没写博客了,因为这个最近有人问,写给人看的。

  • 相关阅读:
    将博客搬至CSDN
    机器学习中的超参数(Hyperparameters in machine learning)
    《机器学习笔记》-环境配置
    采用KNN算法实现一个简单的推荐系统
    推荐系统介绍:(协同过滤)—Intro to Recommender Systems: Collaborative Filtering
    推荐系统中TopN与kNN的区别
    采用KNN算法实现一个简单的推荐系统
    k-medoids与k-Means聚类算法的异同
    使用Spring Initializer快速创建Spring Boot项目
    Spring 自动注入
  • 原文地址:https://www.cnblogs.com/lszwhb/p/4243615.html
Copyright © 2011-2022 走看看