Objective-C基础-NSArray & NSMutableArray

一 、 NSArray

1> NSArray是一个集合类,相当于是OC数组。

用来存储对象的有序列表;
以面向对象操纵数组;

OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、emue 等;
OC数组不能存放nil值;
NSArray是不可变数组;


由C语言数组思考OC数组的创建

int a = 5 ;
     int ages[10] ;
     
     Person *p = [[Person alloc] init];
     
     Person *person[5] = {p,[[Person alloc] init] };

 1.NSArray的创建

 NSArray *array2 = [NSArray arrayWithObject:@"Jake"];

快速创建一个NSArray对象

//NSArray *array4 = [NSArray arrayWithObjects:@"Jake",@"rose" ,@"1234",nil];
    NSArray *array4 = @[@"Jake",@"rose" ,@"1234"];


nil是数组元素结束的标记

 NSArray *array3 = [NSArray arrayWithObjects:@"Jake",@"rose" ,nil];


 2.NSArray的元素个数

//[array2 count];
    
    NSLog(@"%ld",array2.count);
    
    NSLog(@"%ld",array3.count);

 3.NSArray中元素的访问
 //调用数组对象
    NSLog(@"%@",[array3 objectAtIndex:1]);
    
    NSLog(@"%@",array3[1]);
    
    NSLog(@"%@",array4);


二、遍历

1.利用for循环

Person *p = [[Person alloc] init];
    NSArray *array = @[p,@"Jack",@"Rose"];
    
    for (int i = 0; i < array.count; i++)
    {
        NSLog(@"%@",array[i]);
    }


2.利用编译器特性快速遍历

 //id obj 代表着数组中的每一个元素
    for (id obj in array)
    {
        //找出obj元素在数组中的位置
        unsigned long i = [array indexOfObject:obj];
        
        NSLog(@"%ld - %@",i,obj);
    }

3.block

//每遍历到一个元素,就会调用一次block
    //并且当前元素和索引位置当作参数传给block
    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%ld - %@",idx,obj);
    }];

三、NSMutableArray

常用方法:

可变数组NSMutableArray通过类方法arrayWithCapacity:来创建可变数组:

+ (instancetype)arrayWithCapacity:(NSUInteger)numItems; 

添加元素
  
  [array addObject:[[Person alloc]init ]];
    [array addObject:@"jack"];


删除元素

  //删除所有元素
    //[array removeAllObjects];
    
    //删除指定对象
    //[array removeObject:@"jack"];
    
    //
    [array removeObjectAtIndex:2];
    

错误写法
   
 //[array addObject:10];
    
    NSLog(@"%@",array);
    NSLog(@"%ld",array.count);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值