• OC中的NSArray和NSMutableArray


    //
    //  learn_arr.m
    //  learn_KVC
    //
    //  Created by 蔡佳明 on 2020/10/15.
    //
    /**
     OC中有两种数组
     一种是不可变数组 NSArray
     一种是可变数组 NSMutableArray
     下面介绍一下
     */
    #import <Foundation/Foundation.h>
    int main()
    {
        //NSarray的创建
        // 下面这样子是没有意义的 因为是不可能的。所以永远都是空数组
        NSArray *arr1=[NSArray array];
        
        //创建只有一个对象的数组
        NSArray *arr2 = [NSArray arrayWithObject:@(12)];
        NSLog(@"数组长度=%ld",arr2.count);
        
        //创建多个元素的数组
        NSArray *arr3 =[NSArray arrayWithObjects:@(12),@(13), nil];
        NSLog(@"数组长度=%ld",arr3.count);
    
        //快速创建一个数组
        NSArray *arr4 = @[@"12",@"23",@"14",@"56"];
        NSLog(@"数组长度=%ld",arr4.count);
        
        //下面说一下数组的访问
        //访问数组指定位置的元素
        NSString *str = [arr4 objectAtIndex:2];
        NSLog(@"%@",str);
        
        //快速访问指定位置的值
        NSLog(@"%@",arr4[1]);
        
        //查找指定元素的位置
        NSUInteger index = [arr4 indexOfObject:@"14"];
        NSLog(@"14的位置是%ld",index);
        
        //判断数组中是否存在某个元素
        BOOL b = [arr4 containsObject:@"14"];
        NSLog(@"%d",b);
        
        //遍历数组
        for(int i=0;i<arr4.count;i++)
        {
            NSLog(@"%@",[arr4 objectAtIndex:i]);
            NSLog(@"%@",arr4[i]);
        }
        
        //通过for in
        for(NSString *str in arr4)
        {
            NSLog(@"%@",str);
        }
    
        //NSMutableArray的用法
        //创建一个可变长度的数组
        NSMutableArray *arrM = [NSMutableArray arrayWithObject:@"world"];
        [arrM addObject:@"hello"];
        
        for(NSString *str in arrM)
        {
            NSLog(@"%@",str);
        }
        
        //OC 数组中不能添加nil元素
        
        //删除元素
        [arrM removeObject:@"hello"];
        for(NSString *str in arrM)
        {
            NSLog(@"%@",str);
        }
        
        [arrM addObject:@"hello"];
        
        //删除指定位置元素
        [arrM removeObjectAtIndex:1];
        for(NSString *str in arrM)
        {
            NSLog(@"%@",str);
        }
        [arrM addObject:@"hello"];
        
        //替换元素
        //NSArray* array = @[@"a",@"b",@"c"];
        
        [arrM replaceObjectAtIndex:1 withObject:@"m"];
        for(NSString *str in arrM)
        {
            NSLog(@"%@",str);
        }
        
        //!!! 需要注意的点
        NSMutableArray *array_M = @[@"Bob"];//这种方式创建的永远是不可变的数组
        
        return 0;
    }
  • 相关阅读:
    函数式组件中的class与style处理
    学习CSS(二)
    mysql优化二
    mysql优化一
    spring解决循环依赖
    Java多线程2:Thread中的实例方法
    当try、catch中有return时,finally中的代码会执行么?
    Java多线程1:进程与线程
    手写springmvc
    手写spring
  • 原文地址:https://www.cnblogs.com/caijiaming/p/13822692.html
Copyright © 2020-2023  润新知