A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

     NSArray : 不可变数组
     NSMutableArray : 可变数组
     OC数组不能存放nil值
     OC数组只能存放OC对象、不能存放非OC对象类型,比如int\struct\enum……等
     
    //1.NSArray 的创建
    NSArray *array1 = [NSArray array];//这个array1永远是空数组
    NSArray *array2 = [NSArray arrayWithObject:@"Jack"];
    NSArray *array3 = [NSArray arrayWithObjects:@"Jack",@"Julia",@"Rose",@"12345",nil];// nil是数组元素结束的标记
    NSArray *array4 = @[@"Jack",@"Julia",@"Rose",@"12345"];// 快速创建一个NSArray对象
    // *特别注意:@[] 只能创建不可变数组NSArray
   
    //2.NSArray 的元素个数 及 元素的访问
   
    NSLog(@"%@",array4);// NSArray 全部元素的访问
    NSLog(@"%ld",array4.count);// NSArray 元素个数的访问
    NSLog(@"%@",array4[1]);// NSArray 中元素的快速访问
    NSLog(@"%@",[array4 objectAtIndex:1]);// NSArray 中元素一般的访问
   
    //3.遍历数组
    Person *Person1 = [[Person alloc] init];//创建一个Person对象
    NSArray *arr1 = @[Person1,@"rose",@"Jack",@"Julia"];// 数组可以存储对象
    // 第一种遍历: for循环
    for (int i=0; i<arr1.count; i++) {
        NSLog(@"%@",arr1[i]);
    }
    // 第二种遍历:id obj 代表着数组中的每一个元素
    for (id obj in arr1) {
        NSLog(@"%@",obj);
    }
    // 第三种遍历:在第二种遍历的基础上访问元素,同时访问每个元素对应的下标
    for (id obj in arr1) {
        // 找出obj元素在数组中的位置 元素的第一个下标为 0  i = 0;
        NSUInteger i = [arr1 indexOfObject:obj];
        NSLog(@"%ld--%@",i,obj);
        i++;
        // 加条件 当i 下标等于一个值时,跳出循环
        if (i==2) {
            break;
        }
    }
    // 第四种遍历:使用block遍历每一个元素
    // 这个方法对每一个元素都调用一次block,有obj,也有index,而且还可以设置stop随时终止遍历
    [arr1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%ld - %@",idx,obj);
        // 加条件 下标等于一个值时,停止遍历
        if (idx == 0) {
            *stop = YES;// 停止遍历
        }
    }];
   
    // NSMutableArray : 可变数组的基本使用
    // 创建可变数组
    NSMutableArray *ma1 =  [NSMutableArray arrayWithObjects:@"Jack",@"Julia",@"Rose",nil];
   
    [ma1 addObject:[[Person alloc] init]];// 添加元素 往可变数组中添加一个Person对象
    [ma1 addObject:@"Peter"];// 添加元素 往可变数组中添加一个字符串
    [ma1 insertObject:@"Jim" atIndex:5];// 添加元素 在指定的下标位置添加一个字符串
   
    [ma1 removeObject:@"Rose"];// 删除指定的对象
    [ma1 removeAllObjects];// 删除所有的对象
   
    [ma1 replaceObjectAtIndex:3 withObject:@"100"];
    [ma1 exchangeObjectAtIndex:1 withObjectAtIndex:3];
   
    NSLog(@"%@",ma1);// 访问数组元素
    NSLog(@"%ld",ma1.count);// 打印数组中总元素的个数
   

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

2 个回复

倒序浏览
收藏了。。。。
回复 使用道具 举报
好实用!! 学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马