zoukankan      html  css  js  c++  java
  • OBjective-C:在可变数组NSMutableArray中添加相同对象后,进行自定义的排序方式输出

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

     1 #import "Person+Compare.h"
     2 
     3 @implementation Person (Compare)
     4 -(NSComparisonResult)CompareByName:(Person*)aPerson
     5 {
     6     return [self.name compare:aPerson.name];
     7 }
     8 -(NSComparisonResult)CompareByAge:(Person*)aPerson
     9 {
    10     if(self.age > aPerson.age)
    11         return NSOrderedDescending;
    12     else if (self.age < aPerson.age)
    13         return NSOrderedAscending;
    14     else
    15         return NSOrderedSame;
    16 }
    17 @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;

    }

      测试结果为:

    2015-08-18 18:03:26.997 可变数组的排序[2079:120917] (
        "name=Bruth,age=24",
        "name=Jhon,age=19",
        "name=Smith,age=21",
        "name=Tom,age=20"
    )
    2015-08-18 18:03:26.998 可变数组的排序[2079:120917] (
        "name=Jhon,age=19",
        "name=Tom,age=20",
        "name=Smith,age=21",
        "name=Bruth,age=24"
    )
    Program ended with exit code: 0
  • 相关阅读:
    运算符、流程控制
    python数据类型
    Python入门基础
    pandas教程1:pandas数据结构入门
    使用matplotlib绘制多轴图
    使用matplotlib快速绘图
    浙江省新高中信息技术教材,将围绕Python进行并增加编程相关知识点
    [转]ubuntu搭建LAMP环境
    [转]字体精简
    [转]安装PIL时注册表中找不到python2.7
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4740195.html
Copyright © 2011-2022 走看看