zoukankan      html  css  js  c++  java
  • NSArray和NSMutableString,枚举和排序

        NSArray *array = @[@"string 1",
            @"string 3",
            @"string 4",
            @"string 2"
        ];
        //使用block,枚举所有数组元素,相当于forin循环
        NSLog(@"排序之前:\n");
        [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            NSLog(@"object at index %d = %@\n", idx, obj);
        }];
        
        NSLog(@"排序: \n");
        
        //注意NSComparisonResult的用法
        NSMutableArray *sortArray = [NSMutableArray arrayWithArray:array];
        //sortUsingComparator方法只可以直接改变NSMutableArray元素顺序
        [sortArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            NSString *str1 = obj1;
            NSString *str2 = obj2;
            return [str1 compare:str2];
        }];
        
        [sortArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            NSLog(@"object at index %d = %@\n", idx, obj);
        }];
        
        //NSArray是只读的,只能使用sortedArrayUsingComparator,并重新赋值
        array = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            NSString *str1 = obj1;
            NSString *str2 = obj2;
            return [str1 compare:str2];
        }];
        
        [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            NSLog(@"object at index %d = %@\n", idx, obj);
        }];
    

    NSDictionary、NSMutableDictionary也有类似

    NSSet与NSArray的区别,在于同一个对象只允许添加一次,而NSArray没有这个限制

  • 相关阅读:
    python之路面向对象2
    [C#]扩展方法
    [UGUI]Text文字效果
    [UGUI]修改顶点
    [UGUI]帧动画
    [UGUI]图文混排(二):Text源码分析
    [UGUI]图文混排(一):标签制定和解析
    [Unity基础]镜头管理类
    [Unity工具]批量修改Texture
    323 XAMPP软件
  • 原文地址:https://www.cnblogs.com/iihe602/p/2864181.html
Copyright © 2011-2022 走看看