NSArray和NSMutableArray

在Foundation框架中数组被封装成为类

数组对象:是Foundation数组是有序的对象集合。

数组有两种

NSArray不可变数组类和NSMutableArray可变数组类


注意,需要标记参数数组的结束,将这个数组的最后一个值定为nil,它实际上并不会存储在数组中。

数组中的元素是由它们的索引数确定的。与NSString对象类似,索引从0开始。

可以通过NSLog格式化字符串%@显示整个数组。


NSArray类
NSArray有很多方法, 下面是总结常用的方法: 
count: 返回当前数组的长度; 
objectAtIndex: 按照索引返回数组中的元素; 
containsObject: 是否包含某一元素; 
arrayWithObjects: 类级构造方法; 
initWithObjects: 实例构造方法

-(NSUInteger)indexOfObject:obj
-(NSUInteger)indexOfObjectPassingTest:(BOOL(^)(id obj, NSUInteger idx, BOOL *stop))block
传递每个对象obj到block中,通过测试返回YES,否则为NO
-(id)lastObject
-(void)makeObjectPerformSelector:(SEL)selector
将selector指示的消息发送到数组的每个元素
-(BOOL)writeToFile:path  atomically:(BOOL)flag
将数组写入文件,若flag为YES,则先创建一个临时文件

NSArray的实例代码如下:
[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main (int argc, const charchar * argv[]) {  
  4.     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];  
  5.   
  6.     NSArray *weeksNames = [NSArray arrayWithObjects:   
  7.                            @"星期一",@"星期二",@"星期三",@"星期四"  
  8.                            ,@"星期五",@"星期六",@"星期日",nil];  
  9.     NSLog(@"星期名字");  
  10.     NSLog(@"====   ====");  
  11.     int i;  
  12.     for (i=0; i < [weeksNames count];i++) {  
  13.         NSLog(@"%2i     %@ ", i+1, [weeksNames objectAtIndex: i]);        
  14.     }  
  15.       
  16.       
  17.     [pool drain];  
  18.     return 0;  
  19. }  
arrayWithObjects可以用来创建使用一列对象作为元素的数组。 
在这种情况下, 按顺序列出对象并使用逗号隔开。 
使用这个方法必须在列表的最后指定一个结束标志nil 。 
count可以获得数组的长度。 数组的下标是从0开始的

NSMutableArray类
NSMutableArray是NSArray的子类, NSMutableArray有很多方法, 
下面是总结常用的方法: 
addObject: 在数组的尾部追加一个元素; 
insertObject: atIndex: 按照索引插入一个元素; 
removeObjectAtIndex: 移除特定索引的元素; 
removeObject: 移除所有特定元素; 
initWithCapacity: 实例构造方法
+(instancetype)array创建一个空数组
+(instancetype)arrayWithCapacity:size
-(void)replaceObjectAtIndex:ind  withObject:obj
-(void)removeObject:obj  atIndex:ind


[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main (int argc, const charchar * argv[]) {  
  4.      
  5.     NSMutableArray *weeksNames = [[NSMutableArray alloc] initWithCapacity: 3];  
  6.     [weeksNames addObject@"星期一"];     
  7.     [weeksNames addObject@"星期二"];  
  8.     [weeksNames addObject@"星期三"];     
  9.     [weeksNames addObject@"星期四"];  
  10.     [weeksNames addObject@"星期五"];      
  11.     [weeksNames addObject@"星期六"];  
  12.     [weeksNames addObject@"星期日"];    
  13.       
  14.     NSLog(@"星期名字");  
  15.     NSLog(@"====   ====");  
  16.       
  17.     int i;  
  18.     for (i=0; i < [weeksNames count];i++)   
  19.         NSLog(@"%2i     %@ ", i+1, [weeksNames objectAtIndex: i]);   
  20.       
  21.     [weeksNames release];  
  22.   
  23.     return 0;  
  24.       
  25. }  
[[NSMutableArray alloc] initWithCapacity: 3] , 可以初始化可变数组并分配3个初始单元, 
如果超过了容量会自动追加的。 
addObject方法可以向数组中添加元素

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值