iOS 对NSMutableArray进行排序和过滤的实例

所属分类: 软件编程 / IOS 阅读数: 1952
收藏 0 赞 0 分享

根据实体类的属性进行排序,这个属性排序还可以增加几个排序规则,前后的规则先判断,如果一样的则根据第二个排序规则来判断

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进行排序和过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

iOS开发笔记--详解UILabel的相关属性设置

这篇文章主要介绍了iOS开发笔记--详解UILabel的相关属性设置,对初学者具有一定的参考价值,有需要的可以了解一下。
收藏 0 赞 0 分享

iOS中获取系统相册中的图片实例

这篇文章主要介绍了iOS中获取系统相册中的图片实例,具有一定的参考价值没有需要的朋友可以了解一下。
收藏 0 赞 0 分享

iOS 检测网络状态的两种方法

一般有Reachability和AFNetworking监测两种方式,都是第三方的框架,下文逐一详细给大家讲解,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

IOS 性能优化中离屏渲染

本文主要介绍了IOS 性能优化中离屏渲染的资料,提供了几种方法讲解了优化,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P

这篇文章主要介绍了iOS获取当前设备型号设备信息的总结包含iPhone7和iPhone7P,包括ios7之前之后的获取方式,本文接的非常详细,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

iOS实现爆炸的粒子效果示例代码

之前在网上看到了一个Android实现的爆炸效果,感觉非常不错,所以自己尝试用iOS来实现下效果,现在将实现的过程、原理以及遇到的问题分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

iOS毕业设计之天气预报App

这篇文章主要为大家详细介绍了iOS毕业设计之天气预报App,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

iOS轻点、触摸和手势代码开发

这篇文章主要为大家详细介绍了iOS轻点、触摸和手势代码开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

iOS 实现多代理的方法及实例代码

这篇文章主要介绍了iOS 实现多代理的方法及实例代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

iOS文字渐变色效果的实现方法

在大家日常开发iOS的过程中,可能会遇到要实现文字渐变色的效果,这篇文章文章通过示例代码和详细的步骤介绍了如何利用iOS实现文字渐变色的效果,实现后的很不错,感兴趣的朋友们下面来一起看看吧。
收藏 0 赞 0 分享
查看更多