1.如下model
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface CSRAttentionModel : NSObject
@property(nonatomic) NSInteger createTime;
@end
NS_ASSUME_NONNULL_END
2.數(shù)組
NSMutableArray *array = [NSMutableArray arrayWithCapacity:0];
CSRAttentionModel* attentionModel = [[CSRAttentionModel alloc] init];
attentionModel.createTime = 10;
[array addObject:attentionModel];
CSRAttentionModel* attentionModel2 = [[CSRAttentionModel alloc] init];
attentionModel2.createTime = 10;
[array addObject:attentionModel2];
CSRAttentionModel* attentionModel3 = [[CSRAttentionModel alloc] init];
attentionModel3.createTime = 8;
[array addObject:attentionModel3];
CSRAttentionModel* attentionModel4 = [[CSRAttentionModel alloc] init];
attentionModel4.createTime = 4;
[array addObject:attentionModel4];
CSRAttentionModel* attentionModel5 = [[CSRAttentionModel alloc] init];
attentionModel5.createTime = 17;
[array addObject:attentionModel5];
3.根據(jù)model的屬性createTime降序排序數(shù)組
NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"createTime" ascending:NO];
NSArray* sortPackageResListArr = [array sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSLog(@"%@",sortPackageResListArr);
5.排序前后對比
排序前.png
排序后.png
6.擴(kuò)展:
若想升序排序,只需要將
ascending:
的值傳YES
即可趁怔。若還有另一個(gè)屬性
state
,想在此前排序的基礎(chǔ)上,在增加一條規(guī)則罩旋,如:優(yōu)先按createTime
降序期犬,其次按state
升序排序溺忧,則可如下:
NSSortDescriptor* sortDescriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"createTime" ascending:NO];
NSSortDescriptor* sortDescriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"state" ascending:YES];
NSArray* sortPackageResListArr = [array sortedArrayUsingDescriptors:@[sortDescriptor1,sortDescriptor2]];