以下为自定义的排序方式的实现

 #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中添加相同对象后,进行自定义的排序方式输出的更多相关文章

  1. 可变数组NSMutableArray

    //创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...

  2. 【转】不可变数组NSArray与可变数组NSMutableArray

    原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...

  3. THREE.JS(如何想场景中添加物体对象)

    这篇主要实现向模型对象中添加头像,并组成一个矩形 一.three.js是什么? 上篇说了点TWEEN这篇又来一根THREE是不是两兄弟啊?还真有点像,当想要做3D动画的时候,可能会考虑用TWEEN的动 ...

  4. 在NSMutableArray中添加空元素:NSNull类的使用

    有时需要将一些表示“空”的对象添加到array中.NSNull类正是基于这样的目的产生的.用NSNull表示一个占位符时,语句表达如下: [array addObject:[NSNull null]] ...

  5. 在使用可变数组过程中遇到*** 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 ...

  6. OC—可变数组NSMutableArray

  7. SSM-MyBatis-12:Mybatis中添加单个对象返回主键id列

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...

  8. AutoCAD.NET中添加图形对象的基本步骤与实例演示

    https://blog.csdn.net/u011170962/article/details/37755201 要创建一个图形对象,需要遵循下面的步骤:1.得到创建对象的图形数据库:2.在内存中创 ...

  9. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本 ,请添加处理程序。如果下载文件,请添加 MIME 映射。 IIS站点中添加WCF项目后浏览网站报错解决方法。

    vs2013 wcf服务 windows10 家庭中文版 上图中的红色没有出现就按照下面的方法做: 按照上图所示勾选. 刷新上图中你的网站,查看上图右边的内容是否出现,如果出现,再次重新浏览网站,看一 ...

随机推荐

  1. poj1847 Tram(Dijkstra || Floyd || SPFA)

    题目链接 http://poj.org/problem?id=1847 题意 有n个车站,编号1~n,每个车站有k个出口,车站的出口默认是k个出口中的第一个,如果不想从默认出口出站,则需要手动选择出站 ...

  2. MapReduce与批处理------《Designing Data-Intensive Applications》读书笔记14

    之前的文章大量的内容在和大家探讨分布式存储,接下来的章节进入了分布式计算领域.坦白说,个人之前专业的重心侧重于存储,对许多计算的内容理解可能不是和确切,如果文章中的理解有所不妥,愿虚心赐教.本篇将和大 ...

  3. 【原创】记一次MySQL大表高并发写入引发CPU飙升的排障过程

    目录 一.故障现象... 1 二.初步分析... 2 三.排障过程... 2 1.排查是否QPS或insert并发请求上升导致问题发生... 2 2.排查是否锁资源等待或block导致了insert变 ...

  4. 在python中独立运行orm

  5. 高并发编程之synchronized

    一.什么是线程? 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成.另外,线程 ...

  6. 【CF 585E】 E. Present for Vitalik the Philatelist

    E. Present for Vitalik the Philatelist time limit per test 5 seconds memory limit per test 256 megab ...

  7. windows提权exp列表

    漏洞列表 #Security Bulletin #KB #Description #Operating System CVE-2017-0213 [Windows COM Elevation of P ...

  8. java设计模式(四)代理模式

    适用于为不同操作添加共同的额外行为.通过代理对象访问目标对象,这样可以增加对目标对象的额外操作,达到扩展目标对象功能的目的,如spring事务.AOP等. 要点:1)抽象角色:通过接口或抽象类声明真实 ...

  9. HTTP首部字段

    HTTP首部由首部字段名和首部字段值组成,以逗号隔开.如果首部出现重复,有些浏览器优先处理第一个出现的首部,有些优先处理后者. 主要分为四大类 通用首部字段 请求首部字段 响应首部字段 实体首部字段 ...

  10. BZOJ 1588: [HNOI2002]营业额统计 双向链表

    BZOJ 1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 512 MBSubmit: 9619  Solved: 3287 题目连接 ht ...