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
  • 相关阅读:
    Zabbix——1
    Hive 基础知识——01
    Vim快捷命令
    Shell——2
    Shell——6
    Shell——4
    Shell——3
    Shell——1
    Hive 安装和配置以及基本语法——02
    Shell——5
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4740195.html
Copyright © 2011-2022 走看看