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;
}
原文地址:https://www.cnblogs.com/caijiaming/p/13822692.html