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数组按日期顺序和价格从小到大进行排序

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

时间: 2024-11-09 06:57:39

ios之过滤器,排序器的相关文章

有序容器自主定义排序器

STL中的set和map是有序容器,使用时如果希望根据自己的需要来设定排序器,通常有一下两种方式. 1.如果容器中直接存储对象的话,那么我们可以在对象类中重载<即可,内置类型的话就不需要了,因为有默认的 2.如果存储的不是直接对象的话比如对象的指针(通常为智能指针),这个时候我们就要定义自己的比较器.而比较器的写法一般有两种. ->1.类内重载函数调用运算符的方法. ->2.以函数的方式提供比较器. 对于第一种方法是非常简单而且经常用的,这里不再赘述. 下面主要以一个简单的例子来介绍第二

流之阅读器和书写器(过滤器阅读器和过滤器书写器)

InputStreamReader和OutputStreamWriter类就是相当于输入和输出流之上的装饰器,把面向字节的接口改为面向字符的接口.完成之后,就可以在它们之上使用面向字符的过滤器阅读器或过滤器书写器.与过滤器流一样,有很多子类可以完成特定的过滤工作,包括: BufferedReader BufferedWriter LineNumberReader PushbackReader PrintWriter BufferedReader和BufferedWriter类是基于字符的,对应于

最简单的基于FFmpeg的移动端例子附件:IOS自带播放器

前几篇文章记录的都是IOS下基于FFmpeg的多媒体程序.本文记录一个IOS下自带的视频播放器.相比于移植FFmpeg来说,IOS自带的多媒体框架播放视频要简单很多--只需要调用几个接口就可以了. 源代码 项目的源代码位于ViewController.m文件中,内容如下所示. /** * 最简单的IOS视频播放器 * Simplest IOS Player * * 雷霄骅 Lei Xiaohua * [email protected] * 中国传媒大学/数字电视技术 * Communicatio

最简单的基于FFmpeg的移动端样例:IOS 视频转码器

===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:Android HelloWorld 最简单的基于FFmpeg的移动端样例:Android 视频解码器 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版 最简单的基于FFmpeg的移动端样例:Android 推流器 最简单的基于FFmpeg的移动端样例:Android 视频转

最简单的基于FFmpeg的移动端例子:IOS 视频转码器

本文记录iOS平台下基于FFmpeg的视频转码器.该转码器实际上移植自ffmpeg工程中的ffmpeg.c源代码.有关ffmpeg.c的源代码可以参考文章<ffmpeg.c函数结构简单分析(画图)>,在这里就不重复记录了. 源代码 项目的目录结构如图所示. 下列C语言文件拷贝自FFmpeg源代码: cmdutils.ccmdutils.hcmdutils_common_opts.hconfig.hffmpeg.hffmpeg_filter.cffmpeg_opt.c 此外在编译ffmpeg.c

汉字转拼音,中文拼音排序器

汉字转拼音 NSMutableString *ms = [[NSMutableString alloc] initWithString:@"我是中国人"]; if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO)) { NSLog(@"Pingying: %@", ms); // wǒ shì zhōng guó rén } if (

asp.net core 2.2 中的过滤器/筛选器(上)

ASP.NET Core中的过滤器/筛选器 通过使用 ASP.NET Core MVC 中的筛选器,可在请求处理管道中的特定阶段之前或之后运行代码. 注意:本主题不适用于 Razor 页面. ASP.NET Core 2.1 及更高版本支持适用于 Razor 页面的 IPageFilter 和 IAsyncPageFilter. 有关详细信息,请参阅 Razor 页面的筛选方法. 内置筛选器处理一些任务,例如: 授权(防止用户访问未获授权的资源). 确保所有请求都使用 HTTPS. 响应缓存(对

IOS的segmentedControl(分段器控件)的一些常用属性

#pragma mark - 创建不同的分段器 //初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 UISegmentedControl *mysegmented = [[UISegmentedControl alloc] initWithItems:@[@"左边",@"我是中间",@"右边"]]; mysegmented.frame = CGRectMake(50, 200, kScreenWidth-100, 40);

iOS 多个播放器同时播放,双击全屏,单击退出全屏

前言:公司需求如下:点击一个按钮播放一个视频,最多同时播放4个:双击某视频让其全屏,单击再恢复原来的样子.IOS的播放器有两种,MPMoviePlayerController,AVAudioPlayer.首先我尝试的是前者,发现并不能让两个视频同时播放,当播放第二个视频的时候,第一个就自动停止了:后来又找了些资料试了试后者,完美解决了这个问题. 多个播放器同时播放,资料参考自:http://ios.jobbole.com/84287/ ,这里介绍的挺详细的,文章后面还有项目可以下载演示,这里就不