OC中数组

1 篇文章 0 订阅
1 篇文章 0 订阅

        OC数组的概念

        oc中数组是用来存对象的,NSArray不可变数组,NSMutableArray可变的数组。

        

        //        1,如何创建一个(不可变)数组。

        //        实例方法

        //        ,nil是必须的,

                NSArray*arrrr=[[NSArray alloc]init];//这种情况是在数组作为属性的时候用的

                NSArray *array1= [[NSArray alloc]initWithObjects:@"123",@"321", nil];

        

                NSArray *array2=[[NSArray alloc]initWithArray:array1];

        //见到时候[]要认识,不推荐使用。

                NSArray*array3=@[@"456",@"654"];

        

                NSLog(@"%@",array1);

                NSLog(@"%@",array2);

                NSLog(@"%@",array3);

                NSArray *array=[[NSArray alloc]initWithContentsOfFile:@""];//本地存储使用

        

        //         类方法

                NSArray*array1=[NSArray arrayWithObjects:@"1234", nil];

                NSArray*array2=[NSArray arrayWithArray:array1];

                NSArray*array3=[NSArray arrayWithContentsOfFile:@""];//文件存储。

        

        

        

        //        2.如何使用数组

        //        1),使用数组元素

                NSArray*array1=[[NSArray alloc]initWithObjects:@"1",@"2",@"3", nil];

                NSInteger number=[array1 count];

                NSLog(@"%lu",number);

        

                NSString *item0=[array1 objectAtIndex:2];

                NSLog(@"%@",item0);

                NSLog(@"%@",array1);

                在数组初始化的时候什么都不给,用来表示这个地方要东西,但是并不往里存,直接发到数据库里。

        

        

        //        2),增加数组元素

        //        因为数组是不可变的,所以从内容上来说,是不可能给数组中增加任何一个元素的。删除一个元素也是不肯能的。

        //        建立一个新数组,用老数组再加上新的内容。。。

                NSArray*old_array=[[NSArray alloc]initWithObjects:@"1",@"2",@"3", nil];

                NSArray*new_array=[old_array arrayByAddingObject:@"4"];

                NSArray*newer_array=[old_array arrayByAddingObjectsFromArray:new_array];

                NSLog(@"%@",new_array);

                NSLog(@"%@",newer_array);

        

        

        //        2.如何创建一个可变数组

        //        实例方法

                NSMutableArray *array1=[[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];

                NSLog(@"%@",array1);

        

                NSMutableArray *array2=[[NSMutableArray alloc]initWithArray:array1];

                NSLog(@"%@",array2);

        

        //        可变数组是不可变数组的子类。。。

                NSMutableArray *array3=[[NSMutableArray alloc]initWithCapacity:10];

                NSInteger changdu=[array3 count];

                NSLog(@"%lu",changdu);

        //        capacity的作用,动态节约了对内存的开销,不够再申请。

                NSMutableArray *array4=[NSMutableArray array];

                NSLog(@"%@",array4);

        

        

        

                //3,类方法

                NSMutableArray *array1=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];

                NSLog(@"%@",array1);

        

                NSMutableArray *array2=[NSMutableArray arrayWithArray:array1];

                NSLog(@"%@",array2);

        

                NSMutableArray *array3=[NSMutableArray arrayWithCapacity:10];

                NSLog(@"%@",array3);

        

        

        

        

                4,如何使用可变数组

                1),使用数组元素

                NSMutableArray *array1=[[NSMutableArray alloc]initWithObjects:@"123", nil];

                NSString*item0=[array1 objectAtIndex:0];

                NSLog(@"%@",item0);

        

        2),操作可变数组元素

        NSMutableArray*array=[[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];

        

        [array addObject:@"4"];

        [array addObject:@"0"];

        NSInteger length=[array count];

        NSLog(@"%lu",length);

        NSLog(@"%@",array);

        

        [array insertObject:@"9" atIndex:0];

        [array replaceObjectAtIndex:0  withObject:@"7"];

                [array removeObject:@"1"];

        [array removeObjectAtIndex:1];

//        array removeObject:<#(id)#> inRange:<#(NSRange)#>

        [array removeLastObject];

        [array removeAllObjects];

        NSLog(@"%@",array);

        

数组并不像字符串一样使用那么随意,要时刻记得,数组在使用的时候必须非配内存。

数组,可变,不可变要分清,谁的方法谁用。

可变数组和不可变数组本质没区别,在计算机中都是二进制存储,可变不可变只是告诉程序员如何使用这块内存

        

        

PS:字典(DICTIONARY)和可变字典(NSMUTABLEDICTIONARY)在知识结构上几乎和数组一样。

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值