根据实体类的属性进行排序,这个属性排序还可以增加几个排序规则,前后的规则先判断,如果一样的则根据第二个排序规则来判断
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"data" ascending:YES];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1];
[self.dataArray sortUsingDescriptors:sortDescriptors];
过滤不会对原来的数据产生影响,而是生成符合过滤条件的NSArray数据
NSPredicate *apredicate=[NSPredicate predicateWithFormat:@"id>=%ld AND id<=%ld",3,5];
NSArray *newArr=[self.dataArray filteredArrayUsingPredicate:apredicate];
下面是个例子可以运行看看
#import <Foundation/Foundation.h>
@interface TestBean : NSObject
@property(nonatomic,assign)int id;
@property(nonatomic,strong)NSString* data;
@end
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>
@property (strong, nonatomic) NSArray
*list;
@end
//
// ViewController.m
// First
//
// Created by shanreal-iOS on 17/10/16.
// Copyright © 2017年 shanreal.LongZhenHao. All rights reserved.
//
#import "ViewController.h"
#import "TestBean.h"
@interface ViewController ()
@property(nonatomic,strong)NSMutableArray* dataArray;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_dataArray = [NSMutableArray array];
TestBean* one = [[TestBean alloc]init];
one.id = 1;
one.data = @"one";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 2;
one.data = @"two";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 22;
one.data = @"two2";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 3;
one.data = @"three";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 4;
one.data = @"four";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 44;
one.data = @"four4";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 5;
one.data = @"five";
[_dataArray addObject:one];
one = [[TestBean alloc]init];
one.id = 6;
one.data = @"six";
[_dataArray addObject:one];
[self oneClick];
[self twoClick];
}
-(void)oneClick{
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"data" ascending:YES];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1];
[self.dataArray sortUsingDescriptors:sortDescriptors];
[self logArray:self.dataArray];
}
-(void)twoClick{
NSPredicate *apredicate=[NSPredicate predicateWithFormat:@"id>=%ld AND id<=%ld",3,5];
NSArray *newArr=[self.dataArray filteredArrayUsingPredicate:apredicate];
[self logArray:newArr];
}
-(void)logArray:(NSArray*)array{
NSLog(@"---------------------------------");
for(TestBean* bean in array){
NSLog(@"%d %@",bean.id,bean.data);
}
}
@end
以上这篇iOS 对NSMutableArray进行排序和过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。