iOS 对NSMutableArray进行排序和过滤的实例
根据实体类的属性进行排序,这个属性排序还可以增加几个排序规则,前后的规则先判断,如果一样的则根据第二个排序规则来判断
NSSortDescriptor*sortDescriptor=[[NSSortDescriptoralloc]initWithKey:@"data"ascending:YES];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便 NSArray*sortDescriptors=[[NSArrayalloc]initWithObjects:&sortDescriptorcount:1]; [self.dataArraysortUsingDescriptors:sortDescriptors];
过滤不会对原来的数据产生影响,而是生成符合过滤条件的NSArray数据
NSPredicate*apredicate=[NSPredicatepredicateWithFormat:@"id>=%ldANDid<=%ld",3,5]; NSArray*newArr=[self.dataArrayfilteredArrayUsingPredicate:apredicate];
下面是个例子可以运行看看
#import@interfaceTestBean:NSObject @property(nonatomic,assign)intid; @property(nonatomic,strong)NSString*data; @end
#import@interfaceViewController:UIViewController @property(strong,nonatomic)NSArray *list; @end // //ViewController.m //First // //Createdbyshanreal-iOSon17/10/16. //Copyright©2017年shanreal.LongZhenHao.Allrightsreserved. // #import"ViewController.h" #import"TestBean.h" @interfaceViewController() @property(nonatomic,strong)NSMutableArray*dataArray; @end @implementationViewController -(void)viewDidLoad{ [superviewDidLoad]; //Doanyadditionalsetupafterloadingtheview. _dataArray=[NSMutableArrayarray]; TestBean*one=[[TestBeanalloc]init]; one.id=1; one.data=@"one"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=2; one.data=@"two"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=22; one.data=@"two2"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=3; one.data=@"three"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=4; one.data=@"four"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=44; one.data=@"four4"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=5; one.data=@"five"; [_dataArrayaddObject:one]; one=[[TestBeanalloc]init]; one.id=6; one.data=@"six"; [_dataArrayaddObject:one]; [selfoneClick]; [selftwoClick]; } -(void)oneClick{ NSSortDescriptor*sortDescriptor=[[NSSortDescriptoralloc]initWithKey:@"data"ascending:YES];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便 NSArray*sortDescriptors=[[NSArrayalloc]initWithObjects:&sortDescriptorcount:1]; [self.dataArraysortUsingDescriptors:sortDescriptors]; [selflogArray:self.dataArray]; } -(void)twoClick{ NSPredicate*apredicate=[NSPredicatepredicateWithFormat:@"id>=%ldANDid<=%ld",3,5]; NSArray*newArr=[self.dataArrayfilteredArrayUsingPredicate:apredicate]; [selflogArray:newArr]; } -(void)logArray:(NSArray*)array{ NSLog(@"---------------------------------"); for(TestBean*beaninarray){ NSLog(@"%d%@",bean.id,bean.data); } } @end
以上这篇iOS对NSMutableArray进行排序和过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。