IPHONE 开发之数组的排序、过滤、删除
来源:互联网 发布:网络制式b3什么意思 编辑:程序博客网 时间:2024/06/03 20:38
数组 NSArray NSMultableArray
一些简单的增加、插入操作就不谈了,很简单,下面主要说下 排序、过滤、删除
1.排序
Person 是一个对象,里面有fistName和lastName属性
-(void)sortForArray:(NSArray *)array{//String sort 使用自带 compare 方法NSArray *sortedArray=[array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];//object sort 使用NSSortDescriptor函数,能够针对对象内部属性 比较大小NSSortDescriptor *sorter=[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES];[array sortedArrayUsingDescriptors:[NSArray arrayWithObject:sorter]];[sorter release];//object sort2 更加灵活,能够自定义比较[array sortedArrayUsingSelector:@selector(compareForArray:)];}-(NSInteger)compareForArray:(Person *)another{NSComparisonResult compareResult=[self.fistName compare:another.fistName];if (compareResult==NSOrderedSame) {return 0;}else if (compareResult==NSOrderedAscending) {return -1;}else {return 1;}}
2.过滤
主要是对 NSPredicate 的使用
-(void)filtPersonWithPredicate:(NSArray *)array{NSPredicate *pre1=[NSPredicate predicateWithFormat:@"self.fistName beginWith[c] 'a'"];NSArray *newArray1=[array filteredArrayUsingPredicate:pre1];}这里写的很简单,注意参数,自定很多,比如"self.fistName.length>10" ("self.fistName like &@",@"王") 等等
另外 NSArray 对应 使用 filteredArrayUsingPredicate,这里会产生一个新的数组
而对于 NSMultableArray,对应 适应filterUsingPredicate,这里不会产生新的数组,而是在原数组上修改;
3.删除
对于数组的删除,推荐用下面的方法,不要对原数组 循环删除,可能会有错误
-(void)removePerson:(NSString *)firstName Persons:(NSMutableArray *)array{ //这里新建了个数组 用于储存 要被删除的对象NSMutableArray *removeArray=[[NSMutableArray alloc] init];for (Person *per in array) {if (firstName&&[firstName rangeOfString:per.fistName options:NSLiteralSearch|NSCaseInsensitiveSearch].length==0) {[removeArray addObject:per];}} //删除对象[array removeObjectsInArray:removeArray]; [removeArray release];}
- IPHONE 开发之数组的排序、过滤、删除
- iphone开发之数组排序
- iphone 开发之过滤html标签
- iphone开发数组排序(数组中包括字典)
- Android 编程之入门开发文件夹管理器开发文件的过滤与排序-3
- iPhone开发 文件的增加删除查询
- php开发之数组排序
- iOS开发之数组排序
- iOS开发之谓词Predicate和对象数组的排序
- Objective-C:数组排序、过滤
- EAS BOS 在list界面增加过滤、排序及删除默认的过滤条件
- iPhone开发之文件创建、删除、读取、写入
- iphone开发之实现UITableView多选删除功能详解
- iphone开发之实现UITableView多选删除功能详解
- iphone开发之实现UITableView多选删除功能详解
- iPhone开发之实现UITableView多选删除功能详解
- iPhone开发之实现UITableView多选删除功能详解
- 删除排序数组中重复的元素
- 写高性能 Web 应用程序的 10 个技巧 转自微软资料 .
- RT-Thread 内核实验 1 任务的基本管理
- AS3应用程序模块化开发与ApplicationDomain
- WebService大讲堂之Axis2(8):异步调用WebService (转)
- 数据持久,数据共享,NSFileManager,NSFileHandler,NSBundle
- IPHONE 开发之数组的排序、过滤、删除
- j2me中对图像的像素级处理
- [Idea]关于敏捷开发
- oracle10g RAC在虚拟机下的安装
- Linux下Intel集成显卡驱动安装
- JAVA时间格式化处理
- C#中几种可以判断是值类型还是引用类型的方法
- vs2008 web应用中 为什么引用不了App_Code里的类
- hadoop 集群优化1