OC语言传递c数组,OC数组的简单使用、NSArray

和上一篇文章一样,数组的重要性不言而喻,在OC编程的过程中我们会不断的使用到NSArray,和C语言不同的是,我们这里的数组只能存OC对象类型,不能存C语言基本数据类型,也不能存NSNull类型,但是我们这里的数组可以存多种对象类型,比如,在同一个数组里面,既可以存字符串类型,又可以存对象化了以后的整数类型,甚至是另外一个数组,也可以存其他的对象类型(将C语言的数据类型转换成OC的对象类型下面会讲到),不过在同一个数组里面尽量存同一种数据类型,这是为了方便使用。在OC数组里面以nil表示结尾,如果你在数组的中间存了一个nil的数据,那么在nil后面的数据是读取不到的。

和NSString一样,数组可以分为可变数组(NSMutableArray)和不可变数组(NSArray),首先,我们还是从不可变数组说起,因为可变数组只是在不可变数组上加上了一些新的方法。

一、不可变数组

1.不可变数组的创建

0d246754bb1cfc1bdaad24690bb68117.png

2.访问数组的对象个数可以使用count属性,回忆一下,在字符串中访问字符串的长度我们使用的是length属性。

3.获取某个对象的索引值使用方法:indexOfObject

4.获取某个索引值对应的对象使用方法:objectAtIndex

5.判断数组是否包含某个对象使用方法:containsObject

6.获取数组第一个元素:arr[0]

[arr objectAtIndex:0]

[arr firstObject]

7.获取数组最后一个元素:[arr lastObject]

二、可变数组

可变数组相对于不可变数组和可变字符串相对于不可变字符串类似,都增加了一些方法和属性,最主要的就是增、删、改、插入。

1.创建可变数组

7ea0232ad150ca2e607f31f1645ed87a.png

2.向可变数组里面增加一个对象使用方法:addObject

3.在可变数组里面删除对象:

[removeObject:@"xianggang"];

[ar removeObject:@"bj"];

[ar removeObjectAtIndex:1];

[ar removeAllObjects];

4.更换数组里面的一个对象

[ar exchangeObjectAtIndex:0 withObjectAtIndex:1];

5.插入一个对象

[ar insertObject:@"bj" atIndex:1];

三、封装(即类型转换)

1.将C语言基本数据类型封装为OC对象类型我们使用的是NSNumber;如:

NSNumber *number = [NSNumber numberWithInt:20];

NSNumber *number1 = [NSNumber numberWithFloat:20.0];

2.将C语言的结构体和枚举封装了OC对象类型需要使用NSValue;如:

struct CGRect{

CGPoint point;

CGSize size;

};

struct CGPoint {

CGFloat x;

CGFloat y;

};

struct CGSize {

CGFloat width;

CGFloat height;

};

*/

CGRect rect = CGRectMake(100, 100, 200, 150);

NSValue *rectValue = [NSValue valueWithRect:rect];

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值