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没有这个限制

  • 相关阅读:
    JAVA企业级开发-BOM&DOM(03)
    JAVA企业级开发-JavaScript(02)
    JAVA基础--IO输入输出(File使用)17
    day03-CSS(1)
    day02-HTML(2)
    day01-HTML(1)
    apache2.4 只允许合法域名访问网站 禁止使用ip、非法域名访问
    电子书格式转换
    推荐几本学习MySQL的好书
    Linux上vi(vim)编辑器使用教程
  • 原文地址:https://www.cnblogs.com/iihe602/p/2864181.html
Copyright © 2011-2022 走看看