黑马程序员一NSArray

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


集合类

    oc数组只能存放oc对象,不能存放非oc对象类型,比如int,struct,enum

    oc数组不能存放空值

一.NSArray

  NSArray

    ->NSMutableArray

   这个array永远是空数组

<span style="font-size:14px;">    NSArray *array = [NSArray array]
    
    NSArray *array2 = [NSArray arrayWithPbject:@"jack"];
    多个元素时 nil数组元素结束的标记
    NSArray *array3 = [NSArray arrayWithPbjects:@"jack",@"rose",nil];
    
    NSArray *array4 = [NSArray arrayWithPbjects:@"jack",@"rose",nil];
    //快速创建一个NSArray对象
    NSArray *array4 = @[@"jack",@"rose"];
    
    //NSArray的元素个数
    NSLog(@"%ld",array3.count);
    

    //NSArray中元素的访问
    [array3 objectAtIndex:1];访问第一个//效率低
    array3[1];//编译器特性,把上诉代码转成这个</span><span style="font-size: 11px;">
    
</span>

    

二.NSArray的遍历

    快速遍历

    

<span style="font-size:14px;">    Person *p = [[Person alloc] init];
    NSArray *array = @[p,@"jack"];
    for (int i = 0;i < array.count; i++)
    {
        NSLog(@"%@",array[i]);
    }</span>

<pre name="code" class="objc"><span style="font-size:14px;">    //int i = 0;
    for (id obj in array)
    {
        NSUInteger i = [array indexOfObject:obj];//找出obj在数组中的位置是i
        NSLog(@"%ld - %@",i,obj);
        //i++;
    }
</span>


 
    

<span style="font-size:14px;"> [array enumerateObjectsUsingBlock:
     //每遍历到一个元素,就会调用一次block
     //并且当前元素和索引位置当做参数传给block
     ^(id obj,NSUInteger idx, BOOL *stop/*停止遍历*/)
     {
        NSLog(@"%ld - %@",idx,obj);
         if (idx == 0)
         {
            *stop = YES;//内部有一个for循环
         }
     }];
    </span>

<span style="font-size:14px;">  </span><pre name="code" class="objc"><span style="font-size:14px;">    void ^(myblock)(id,NSUInteger, BOOL *s) = ^(id obj,NSUInteger idx, BOOL *stop)
    {
        NSLog(@"%ld - %@",idx,obj);
        if (idx == 0)
        {
            *stop = YES;
        }
    }
    
    for (int i = 0;i < array.count ;i++)
    {
       //用来标记是否需要停止遍历
        BOOL isStop = NO;
        //取出元素
        id obj = array[i];
        
        myblock(OBJ,I,&isStop);
        
        if (isStop)
        {
            break;
        }
    }
</span>

 


三.NSMutableArray

    

<span style="font-size:14px;">    NSMutableArray *array = [NSMutableArray array];
    NSMutableArray *array = [NSMutableArray arrayWithPbjects:@"rose",@"jim",nil];;
    
</span>

    添加元素

   

<span style="font-size:14px;"> [array addObject:[[Person alloc] init]];
    
    [array addObject:@"jack"];
</span>

   删除元素

   

<span style="font-size:14px;"> [array removeAllObjects];
    //删除指定元素
    [array removePbject:@"jack"]
    //删除指定位置的元素
    [array removePbjectAtIndex:2];</span><span style="font-size: 11px;">
    </span>

   错误写法 [array addPbject:nil]

    

    

    



------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值