Objective-C 初窥之数组

1 前言

今天我们来学习一下Objective-C中的数组包括 NSArray和NSMutableArray两种,下面我们就来学习一下他们的简单用法。

2 NSArray介绍

NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。

注:这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int, float, double, BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。

2.1 创建一个数组

这些都是类方法,创建形式大致相同:

NSArray *anArray = [NSString array];
NSArray *anArray2 = [NSArray arrayWithObject : @“老王”,nil ];
当然,你也可以使用实例方法创建数组,并且通常我们也是这样做的。

这些是初始化方法,所以应该用alloc创建NSArray对象:

NSArray *array = [[NSArray alloc] initWithObjects : @"1", @"2",nil];
最后一个数据必须是nil,表示数组结束。

2.2 查询

- (BOOL) containsObject : (id)anObject 

判断数组中是否包含给定元素

- (NSUInteger) count

是比较常用的方法,它会返回数组中元素的数量

- (id) objectAtIndex : (NSUInteger) index 

返回指定下标的数组元素(在使用这个方法的时候 , 前面如果你要声明一个变量 , 那么这个变量应该是与元素类型相同
如: NSString *a = [xxx objectAtIndex : 1 ];
)

- (id) lastObject 

返回数组最后一个元素。这是个很有趣也很有用的方法,正常情况下我们可以使用上面两个方法的组合来获得最后一个元素,但是当数组中没有元素的时候,传入0就会引起程序崩溃,使用这个方法则很好的解决了这个问题,它会返回一个 nil 。

2.3 数组中查找对象的方法

提供了非常多的方法来查找对象,应该是为了以后对数据的操作的时候使用的,现在先放在这,以后要用了就可以参考:

-indexOfObject:

-indexOfObject:inRange:

2.4 数组的比较

- (id) firstObjectCommonWithArray :(NSArray *)anotherArray 
返回两个数组中第一个相同的对象元素。
- (BOOL) isEqualToArray : (NSArray *)anotherArray
比较两个数组内容是否相同

2.5 派生出新的数组

- (NSArray*)arrayByAddingObject : (id)anObject
在数组末尾加入一个新的对象形成新的数组,旧数组依然的数在,新数组是copy了旧组,再加上要加入的对象形成的。

2.6 数组转字符串

- (NSString *) componentsJoinedByString : (NSString *)separator

根据传入的分割符(separator),将数组转化成字符串并返回。

3 NSMutableArray介绍


NSMutableArray是NSArray的子类,也是NSArray的可变版本,它类似于Java中的BufferedArray..可以用做缓冲。它本身没有容量限制,如果数组中元素满了,它会自动增加长度。
NSMutableArray是NSArray的子类,所以它继承了NSArray的所有方法。

3.1 创建和初始化

+ (id) arrayWithCapacity : (NSUInteger *)anInteger
创建并初始化一个长度为anInterger的可变数组。
- (id)initWithCapacity : (NSUInteger *)anInteger

3.2 向数组加入元素

- (void)addObject : (id)anObject 

添加一个元素到数组末尾

- (void)insertObject : (id)anObject atIndex : (int)index
添加一个元素到指定位置,后面的元素向后移

3.3 删除元素

- (void)removeAllObjects

删除所有元素

- (void) removeObject : (id)anObject
删除在数组中所有的给定元素
- (void)removeObjectAtIndex : (NSUInteger *)integer
删除给定位置元素

3.4 替代

- (NSArray *)replaceObjectAtIndex : (NSUInteger *)index withObject : (id)anObject

将指定对象代替指定位置的元素。(若index超过数组范围,则返回一个NSRangeException)

4 结语

这次我们介绍了Objective-C中常见的数组对象,希望能对大家学习有所帮助。


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值