Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2676590
  • 博文数量: 877
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5921
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-05 12:25
个人简介

技术的乐趣在于分享,欢迎多多交流,多多沟通。

文章分类

全部博文(877)

文章存档

2021年(2)

2016年(20)

2015年(471)

2014年(358)

2013年(26)

分类: iOS平台

2015-08-13 11:17:41

Objective-C 之 NSArray 的使用方法  

http://leopard168.blog.163.com/blog/static/168471844201111181154330/

在iOS 开发过程中, NSArray,NSMutableArray、NSDictionary、 NSMutableDictionary 经常被用到。这里先来介绍NSArray  与 NSMutableArray。 

  NSArray 和 NSMutableArray  二者有时可任意选用,有时又必区分开来。

首先,NSArray只能存储Objective-C 对象,而不能存储C语言中的基本数据类型,比如:int,flot,指针等。 在使用NSArray时,需特别注意,必须以nil 结尾。以此来代表结束。 举例如下:

 NSArray 通过类方法 arrayWithObjects 创建一个新的NSArray。

NSArray * array= [ NSArray arraryWithObjects: @"one", @"two", @"three",nil  ] ;

为了查看array 的内容, 可通过NSLog方法,如下:

for(int i=0; i<[array count]; i++ )

{

NSLog (@"index %d has %@", i, [array objectAtIndex:i]);

}

从中可看出, NSArray 创建的是静态数组,一旦创建之后,就再也不能添加和删除数组中的对象了。

NSMutableArray 是 NSArray 补充类。NSMutalbeArray 创建的是动态数组,可随意添加或删除数组中的元素。

也行你会看到 arrayWithCapacity 方法,这个数组容量仅仅是一个参考,不会真的限制数组的大小。 是为代码优化而设计的。

NSMutableArray 使用 addObject: 在末尾添加对象, 用 removeObjectAtIndex: 来删除指定索引处的对象。对象删除后,被删除对象后面的数组元素被迁移,填补空缺。

这里需特别注意的是:NSArray 的初始化必须以 nil 结束。 如果忘记了,编译器会报错:Missing sentinel in method dispatch.

 

另外还需注意,在字符串前加 @ ,这是 数组在 Objective-C  与 C 的区别。


如何访问获取 NSArray 中的对象呢?  通过 NSArray的 objectAtIndex: 方法。 改写如下:    

NSArray 的初始化有 两种方法: 

 (1) NSArray *array = [[NSArray alloc]initWithObjects@"red"@"white",@"blue",nil];  // 不要忘记 最后补填 nil 

 (2) NSArray *array =@[@"red"@"white",@"blue"];    // 这种方法更为简洁些


 NSArray *array = [[NSArray alloc] initWithObjects: @"red", @"white", @"blue", nil];  

NSLog(@"array[0]=%@" , [array objectAtIndex:0]) ;

输出结果是: array[0]=red

同理,通过 NSArray的 insertObjectAtIndex:可以很方便地将已有的对象插入数组中的指定位置。


小结:

NSArray 其实是很容易理解的。 从本质上讲,NSArray 就是一个存放对象的容器。  NSArray 是静态的对象数组,一旦创建后,就不能再添加和删除对象。 如果你想添加或删除,当然是有办法的,而且还很简单,那就是用 NSMutalbeArray 啊。

阅读(639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~