OBjective-C:在可变数组NSMutableArray中添加相同对象后,进行自定义的排序方式输出
以下为自定义的排序方式的实现
#import "Person+Compare.h" @implementation Person (Compare)
-(NSComparisonResult)CompareByName:(Person*)aPerson
{
return [self.name compare:aPerson.name];
}
-(NSComparisonResult)CompareByAge:(Person*)aPerson
{
if(self.age > aPerson.age)
return NSOrderedDescending;
else if (self.age < aPerson.age)
return NSOrderedAscending;
else
return NSOrderedSame;
}
@end
主函数测试:
#import <Foundation/Foundation.h>
#import "Person+Compare.h"
#import "Person.h"
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSMutableArray *personArray = [[NSMutableArray alloc]initWithCapacity:20];
[personArray addObject:[Person personWithName:@"Tom" andAge:20]];
[personArray addObject:[Person personWithName:@"Smith" andAge:21]];
[personArray addObject:[Person personWithName:@"Jhon" andAge:19]];
[personArray addObject:[Person personWithName:@"Bruth" andAge:24]];
//按姓名排序
NSMutableArray *sortedByName = [NSMutableArray arrayWithArray:[personArray sortedArrayUsingSelector:@selector(CompareByName:)]];
NSLog(@"%@",sortedByName);
//按年龄排序
NSMutableArray *sortedByAge = [NSMutableArray arrayWithArray:[personArray sortedArrayUsingSelector:@selector(CompareByAge:)]];
NSLog(@"%@",sortedByAge);
}
return 0;
}
测试结果为:
-- ::26.997 可变数组的排序[:] (
"name=Bruth,age=24",
"name=Jhon,age=19",
"name=Smith,age=21",
"name=Tom,age=20"
)
-- ::26.998 可变数组的排序[:] (
"name=Jhon,age=19",
"name=Tom,age=20",
"name=Smith,age=21",
"name=Bruth,age=24"
)
Program ended with exit code:
OBjective-C:在可变数组NSMutableArray中添加相同对象后,进行自定义的排序方式输出的更多相关文章
- 可变数组NSMutableArray
//创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...
- 【转】不可变数组NSArray与可变数组NSMutableArray
原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...
- THREE.JS(如何想场景中添加物体对象)
这篇主要实现向模型对象中添加头像,并组成一个矩形 一.three.js是什么? 上篇说了点TWEEN这篇又来一根THREE是不是两兄弟啊?还真有点像,当想要做3D动画的时候,可能会考虑用TWEEN的动 ...
- 在NSMutableArray中添加空元素:NSNull类的使用
有时需要将一些表示“空”的对象添加到array中.NSNull类正是基于这样的目的产生的.用NSNull表示一个占位符时,语句表达如下: [array addObject:[NSNull null]] ...
- 在使用可变数组过程中遇到*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'问题
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFD ...
- OC—可变数组NSMutableArray
- SSM-MyBatis-12:Mybatis中添加单个对象返回主键id列
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...
- AutoCAD.NET中添加图形对象的基本步骤与实例演示
https://blog.csdn.net/u011170962/article/details/37755201 要创建一个图形对象,需要遵循下面的步骤:1.得到创建对象的图形数据库:2.在内存中创 ...
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本 ,请添加处理程序。如果下载文件,请添加 MIME 映射。 IIS站点中添加WCF项目后浏览网站报错解决方法。
vs2013 wcf服务 windows10 家庭中文版 上图中的红色没有出现就按照下面的方法做: 按照上图所示勾选. 刷新上图中你的网站,查看上图右边的内容是否出现,如果出现,再次重新浏览网站,看一 ...
随机推荐
- 评分卡模型中的IV和WOE详解
1.IV的用途 IV的全称是Information Value,中文意思是信息价值,或者信息量. 我们在用逻辑回归.决策树等模型方法构建分类模型时,经常需要对自变量进行筛选.比如我们有200个候选 ...
- (转)python的range()函数用法
使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序. 转自: ...
- IOS 本地推送
// 1.打开本地推送并设置属性 NSString *str = @"本地推送的信息"; UIApplication *app = [UIApplication sharedApp ...
- spring boot mybatis 多数据源配置
package com.xynet.statistics.config.dataresources; import org.springframework.jdbc.datasource.lookup ...
- [js]面向对象编程
一.js面向对象基本概念 对象:内部封装.对外预留接口,一种通用的思想,面向对象分析: 1.特点 (1)抽象 (2)封装 (3)继承:多态继承.多重继承 2.对象组成 (1)属性: 任何对象都可以添加 ...
- Microsoft Office Access
Microsoft Office Access各版本下载地址:http://www.accessoft.com/download.html 简介 access(微软发布的关联式数据库管理系统)一般指M ...
- 历史文章分类汇总-Anaconda安装第三方包(whl文件)
本文主要是对公众号之前发布的文章进行分类整理,方面大家查阅,以后会不定期对文章汇总进行更新与发布. 一.推荐阅读: Anaconda安装第三方包(whl文件) 福布斯系列之数据分析思路篇 福布斯系 ...
- ASP.NET MVC , ASP.NET Web API 的路由系统与 ASP.NET 的路由系统是怎么衔接的?
ASP.NET MVC 的路由实际上是建立在 ASP.NET 的路由系统之上的. MVC 路由注册通常是这样的: RouteTable 是一个全局路由表, 它的 Routes 静态属性是一个 Ro ...
- java集合系列之三(ArrayList)
上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayLi ...
- 【8.13校内测试】【DP】【按除数分类】【二分】
感觉今天状态不太好啊一大早就很困,t1卡得有点久,以为三道题都是这个难度,结果难度完全是倒着排的啊!!在dp和数学上还得多练题!! 很像背包的一道DP??先不考虑树的结构,给每个点都先分配一个度数,剩 ...