美文网首页
iOS中的NSArray和NSMutableArray

iOS中的NSArray和NSMutableArray

作者: 皆为序幕_ | 来源:发表于2018-09-13 14:28 被阅读0次

    NSArray基本用法

        //初始化
        NSArray *array = [NSArray arrayWithObjects:@"A",@"B",@"C",@"D",@"E",@"F", nil];
        NSArray *array1 = @[@"a",@"b",@"c",@"d"];
          
        //获取数组元素个数
        NSLog(@"%lu",(unsigned long)array.count);//6
        //获取数组最后一个元素
        NSLog(@"%@",[array lastObject]);//F
        //获取数组第一个元素
        NSLog(@"%@",[array firstObject]);//A
        //获取对象C在数组的位置
        NSLog(@"%lu",(unsigned long)[array indexOfObject:@"C"]);//  2
         //获取数组中索引为2的对象
        NSLog(@"%@",[array objectAtIndex:2]);//C
    

    NSArray遍历

        for (int i = 0 ; i< array.count; i++) {
            NSLog(@"遍历-%@",array[i]);
        }
        
        
        for (NSString *str in array) {
            NSLog(@"遍历-%@",str);
        }
    
        [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSLog(@"遍历-%@-%lu",obj,(unsigned long)idx);
        }];
    

    NSArray中的所有对象执行方法

    @interface Student : NSObject
    - (void)log;
    - (void)logInfo:(NSString *)str;
    @end
    
    @implementation Student
    - (void)log{
        NSLog(@"打印");
    }
    - (void)logInfo:(NSString *)str{
        NSLog(@"打印-%@",str);
    }
    @end
    
    ---------------------
    NSArray *array3 = @[[Student new],[Student new],[Student new],[Student new]];
    [array3 makeObjectsPerformSelector:@selector(log)];
    [array3 makeObjectsPerformSelector:@selector(logInfo:) withObject:@"p"];
    

    NSArray排序

        NSArray *arr = @[@"90",@"20",@"30",@"10",@"50",];
        //数组中的元素不可以是自定义的
        NSArray *arr1 = [arr sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@",arr1);
        /*
         10,20,30,50,90
         */
    
        //NSSortStable:串行排序   NSSortConcurrent:并发排序
        NSArray *arr2 = [arr sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
            //每次调用
            NSLog(@"ob1--%@,obj2--%@",obj1,obj2);
            return [obj1 intValue] < [obj2 intValue];
        }];
        NSLog(@"%@",arr2);
         /*
         90,50,30,20,10
         */
    

    NSArray和NSString转换

        NSArray *arr = @[@"A",@"B",@"C",@"D"];
        NSString *str = [arr componentsJoinedByString:@"-"];
        NSLog(@"%@",str);//A-B-C-D
    
        NSString *str1 = @"A-B-C-D";
        NSArray *arr1 = [str1 componentsSeparatedByString:@"-"];
        NSLog(@"%@",arr1);
        /*
         A,B,C,D
         */
    

    NSArray文件读写

        NSArray *array = [NSArray arrayWithObjects:@"A",@"B",@"C",@"D",@"E",@"F", nil];
        //将数组写入文件,本质是写入一个XML文件,iOS中一般写入plist,不能写入自定义对象
        BOOL flag = [array writeToFile:@"/Users/soso/Desktop/demo1/NSArray/demo.plist" atomically:YES];
        NSLog(@"%d",flag);
    
        //读文件
        NSArray *arr = [NSArray arrayWithContentsOfFile:@"/Users/soso/Desktop/demo1/NSArray/demo.plist"];
        NSLog(@"%@",arr);//A,B,C,D,E,F
    

    NSMutableArray

       NSMutableArray *arr = [NSMutableArray array];
        //添加元素
        [arr addObject:@"A"];
        NSLog(@"%@",arr);//A
        
        //将指定数组中的元素都取出来,放到arrM中
        [arr addObjectsFromArray:@[@"B",@"C"]];
        NSLog(@"%@",arr);// A,B,C
    
        //插入一个元素
        [arr insertObject:@"D" atIndex:2];
        NSLog(@"%@",arr);// A,B,D,C
    
        //插入多个元素
        NSRange range = NSMakeRange(2, 2);
        NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range];
        [arr insertObjects:@[@"H",@"G"] atIndexes:set];
        NSLog(@"%@",arr);//A,B,H,G,D,C
    
        //删除
        [arr removeObject:@"B"];
        [arr removeObjectAtIndex:2];
        [arr removeLastObject];
        [arr removeAllObjects];
        
        //替换
        [arr replaceObjectAtIndex:3 withObject:@"L"];
        NSLog(@"%@",arr);//A,B,H,L,D,C
    

    相关文章

      网友评论

          本文标题:iOS中的NSArray和NSMutableArray

          本文链接:https://www.haomeiwen.com/subject/qiyjiftx.html