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

 更新时间:2018年01月15日 09:17:36   作者:键盘舞者113  
下面小编就为大家分享一篇iOS 对NSMutableArray进行排序和过滤的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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 App开发中UITextField组件的常用属性小结

    iOS App开发中UITextField组件的常用属性小结

    这篇文章主要介绍了iOS App开发中UITextField组件的常用属性小结,文中还介绍了UITextField隐藏键盘及为内容增加校验的两个使用技巧,需要的朋友可以参考下
    2016-04-04
  • iOS在页面销毁时如何优雅的cancel网络请求详解

    iOS在页面销毁时如何优雅的cancel网络请求详解

    这篇文章主要给大家介绍了关于iOS在页面销毁时如何优雅的cancel网络请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • iOS的UI开发中UITabBarControlle的基本使用教程

    iOS的UI开发中UITabBarControlle的基本使用教程

    这篇文章主要介绍了iOS的UI开发中UITabBarControlle的基本使用教程,代码基于传统的Objective-C,需要的朋友可以参考下
    2015-12-12
  • iOS自定义View实现卡片滑动

    iOS自定义View实现卡片滑动

    这篇文章主要为大家详细介绍了ios自定义View实现卡片滑动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • iOS10推送教程详解

    iOS10推送教程详解

    这篇文章主要为大家详细介绍了iOS10推送开发教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • iOS实现图片保存与搜索功能

    iOS实现图片保存与搜索功能

    这篇文章主要介绍了iOS实现图片保存与搜索功能的相关资料,需要的朋友可以参考下
    2016-02-02
  • xcode 4 制作静态库图文详解

    xcode 4 制作静态库图文详解

    我这个文档的静态库的开发是基于Xcode4.2和iOS SDK5.0编写的。Xcode4跟之前的Xcode3还是有不少的差别的
    2013-06-06
  • iOS实现账号、密码记住功能

    iOS实现账号、密码记住功能

    这篇文章主要为大家详细介绍了iOS实现账号、密码记住功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • IOS 远程通知兼容(IOS7,IOS8)实例详解

    IOS 远程通知兼容(IOS7,IOS8)实例详解

    这篇文章主要介绍了IOS 远程通知兼容(IOS7,IOS8)实例详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • IOS判断字符串是否有空格实例

    IOS判断字符串是否有空格实例

    在我们大家日常开发的时候,经常会需要对注册,登录,忘记密码等功能的密码进行判断是否包含空格,下面这篇文章给大家分享了自己封装的一个方法,有需要的可以参考借鉴。
    2016-09-09

最新评论