zoukankan      html  css  js  c++  java
  • [oc学习笔记]数组的遍历和排序

     1         //数组的遍历(可变数组举例)
     2         //for遍历
     3         NSMutableArray *aa = [NSMutableArray array];
     4         [aa addObjectsFromArray:@[@"ss",@"ddd",@"sad"]];
     5         for (int i = 0;  i < aa.count; i++) {
     6             NSLog(@"%@",[aa objectAtIndex:i]);
     7         }
     8         //快速遍历
     9         for (id obj in aa) {
    10             NSLog(@"%@",obj);
    11         }
    12         //代码块遍历
    13         // obj是对象 idx是下标 stop是停止标志
    14         [aa enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    15             NSLog(@"%@",obj);
    16             NSLog(@"%@",[aa objectAtIndex:idx]);
    17         }];
    18         //迭代器遍历
    19         //将数组元素存放进迭代器
    20         NSEnumerator *en = [aa objectEnumerator];
    21         id obj = nil;//创建一个对象接受返回对象
    22         while (obj = [en nextObject]) {
    23             NSLog(@"%@",obj);
    24         }
    25         //反向迭代器遍历
    26         NSEnumerator *en1 = [aa reverseObjectEnumerator];
    27         id obj1 = nil;
    28         while (obj1 = [en1 nextObject]) {
    29             NSLog(@"%@",obj1);
    30         }
    31         
    32         
    33         //排序(可变数组举例)
    34         //可变数组排序的方法无返回值 不可变数组的排序有返回值
    35         //选择器排序
    36         //compare方法尽限于比较元素是字符时 ,如有另外的比较 请另写比较方法 返回值(NSComparisonResult)
    37         [aa sortUsingSelector:@selector(compare:)];
    38         //代码块排序
    39         //根据实际情况写判断方法
    40         [aa sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    41             return [obj1 compare:obj2];
    42         }];
    43         //比较描述器排序
    44         //对多个条件进行排序比较便利
    45         Person *p1 = [[Person alloc]init];
    46         p1.name = @"ss";
    47         p1.age = @"16";
    48         
    49         Person *p2 = [[Person alloc]init];
    50         p2.name = @"dd";
    51         p2.age = @"14";
    52         
    53         Person *p3 = [[Person alloc]init];
    54         p3.name = @"hh";
    55         p3.age = @"22";
    56         
    57         Person *p4 = [[Person alloc]init];
    58         p4.name = @"hh";
    59         p4.age = @"19";
    60         NSMutableArray *sss = [NSMutableArray arrayWithObjects:p1,p2,p3,p4,nil];
    61         NSSortDescriptor *sort1 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
    62         NSSortDescriptor *sort2 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
    63         NSArray *s = @[sort1,sort2];
    64         [sss sortUsingDescriptors:s];
    65         NSLog(@"%@",sss);

    person.h

    1 #import <Foundation/Foundation.h>
    2 
    3 @interface Person : NSObject
    4 @property (nonatomic,strong)NSString *name;
    5 @property (nonatomic,strong)NSString *age;
    6 @end

    person.m

    1 #import "Person.h"
    2 
    3 @implementation Person
    4 - (NSString *)description
    5 {
    6     return [NSString stringWithFormat:@"%@ %@", _name,_age];
    7 }
    8 @end

    运行结果分析:

    2015-06-01 17:37:55.984 Array[2030:140148] ss
    2015-06-01 17:37:55.985 Array[2030:140148] ddd
    2015-06-01 17:37:55.985 Array[2030:140148] sad
    2015-06-01 17:37:55.986 Array[2030:140148] ss
    2015-06-01 17:37:55.986 Array[2030:140148] ddd
    2015-06-01 17:37:55.986 Array[2030:140148] sad
    2015-06-01 17:37:55.986 Array[2030:140148] ss
    2015-06-01 17:37:55.986 Array[2030:140148] ss
    2015-06-01 17:37:55.986 Array[2030:140148] ddd
    2015-06-01 17:37:55.987 Array[2030:140148] ddd
    2015-06-01 17:37:55.987 Array[2030:140148] sad
    2015-06-01 17:37:55.987 Array[2030:140148] sad
    2015-06-01 17:37:55.992 Array[2030:140148] ss
    2015-06-01 17:37:55.992 Array[2030:140148] ddd
    2015-06-01 17:37:55.992 Array[2030:140148] sad
    2015-06-01 17:37:55.992 Array[2030:140148] sad
    2015-06-01 17:37:55.992 Array[2030:140148] ddd
    2015-06-01 17:37:55.993 Array[2030:140148] ss
    2015-06-01 17:37:55.993 Array[2030:140148] (
        "dd 14",
        "hh 19",
        "hh 22",
        "ss 16"
    )
  • 相关阅读:
    js获取 DOM 里所有图片(包括背景和iframe)
    php 和 js互相调用
    mac 权限
    node 启动命令
    three.js THREE.MeshLine.js 回显3D路径
    Vue2, Vue3 开发单一html页面区别
    前端布局,相关链接
    jq国际化jquery.i18n.properties使用
    资料
    其它工具
  • 原文地址:https://www.cnblogs.com/0error/p/4544489.html
Copyright © 2011-2022 走看看