oc-Foundation_02_NSArray

Foundation_02_NSArray

一、NSArray基本介绍

1.什么是NSArray

NSArray是OC中的数据类,开发中建议尽量使用NSArray代替C语言中的数组

C语音中数组的弊端

int array[4] = {1,5,6,8};

1.只能存放一种类型的数据(类型必须一致)
2.不能很方便地动态添加数组元素(长度固定)
3.不能很方便地动态删除数组元素(长度固定)

1.NSArray注意点

  • 只能存储OC对象,并且是有顺序的,不能存储C语言的基础数据类型(int,float,enum,struct和NSArray中的随机指针)
  • 不能在NSArray中存储nil值(对象的零值或NULL值)
  • 它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素

2.NSArray对象的创建

  • 通过类方法arrayWithObjects:创建一个新的NSArray。发送以逗号分割的对象列表,在列表结尾添加nil(这就是不能在数组中存储nil的一个原因)
    NSArray *array = [NSArray arrayWithObjects:@”xm1”,@”xm2”,nil];
  • 数组字面量方式创建(这种方式不用再后面加上 nil)
    NSArray *array = @[@”xm1”,@”xm2”];
  • 。。。。。。。

3.NSArray的属性和方法

  • count 数组中元素个数
  • objectAtIndex: 获取索引对应的对象(也可以用 NSArray对象名[indes])

4.索引错误

   void test1(){
    NSArray *array = [NSArray arrayWithObjects:@"xm1",@"xm2", nil];
    NSLog(@"array:%@",array);
    NSArray *array2 = @[@"xm1",@"xm2",@"xm3"];
    NSLog(@"array:%@",array2);
    NSLog(@"array:%@",[array2 objectAtIndex:2015]);
   }


  *** Terminating app due to uncaught exception 'NSRangeException',reason: '*** -[__NSArrayI objectAtIndex:]: index 2015 beyond bounds [0 .. 2]'

二、NSMutableArray

和java中的List类似,注意的是NSMutableArray没有用来创建对象的字面量语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值