在Foundation框架中数组被封装成为类,
数组对象:是Foundation数组是有序的对象集合。
数组有两种:
NSArray不可变数组类和NSMutableArray可变数组类。
注意,需要标记参数数组的结束,将这个数组的最后一个值定为nil,它实际上并不会存储在数组中。
数组中的元素是由它们的索引数确定的。与NSString对象类似,索引从0开始。
可以通过NSLog格式化字符串%@显示整个数组。
NSArray类
NSArray有很多方法, 下面是总结常用的方法:
count: 返回当前数组的长度;
objectAtIndex: 按照索引返回数组中的元素;
containsObject: 是否包含某一元素;
arrayWithObjects: 类级构造方法;
initWithObjects: 实例构造方法;
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的实例代码如下:
- #import <Foundation/Foundation.h>
- int main (int argc, const charchar * argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- NSArray *weeksNames = [NSArray arrayWithObjects:
- @"星期一",@"星期二",@"星期三",@"星期四"
- ,@"星期五",@"星期六",@"星期日",nil];
- NSLog(@"星期名字");
- NSLog(@"==== ====");
- int i;
- for (i=0; i < [weeksNames count];i++) {
- NSLog(@"%2i %@ ", i+1, [weeksNames objectAtIndex: i]);
- }
- [pool drain];
- return 0;
- }
arrayWithObjects可以用来创建使用一列对象作为元素的数组。
在这种情况下, 按顺序列出对象并使用逗号隔开。
使用这个方法必须在列表的最后指定一个结束标志nil 。
count可以获得数组的长度。 数组的下标是从0开始的。
NSMutableArray类
NSMutableArray是NSArray的子类, NSMutableArray有很多方法,
下面是总结常用的方法:
addObject: 在数组的尾部追加一个元素;
insertObject: atIndex: 按照索引插入一个元素;
removeObjectAtIndex: 移除特定索引的元素;
removeObject: 移除所有特定元素;
initWithCapacity: 实例构造方法;
insertObject: atIndex: 按照索引插入一个元素;
removeObjectAtIndex: 移除特定索引的元素;
removeObject: 移除所有特定元素;
initWithCapacity: 实例构造方法;
+(instancetype)array创建一个空数组
+(instancetype)arrayWithCapacity:size
-(void)replaceObjectAtIndex:ind withObject:obj
-(void)removeObject:obj atIndex:ind
- #import <Foundation/Foundation.h>
- int main (int argc, const charchar * argv[]) {
- NSMutableArray *weeksNames = [[NSMutableArray alloc] initWithCapacity: 3];
- [weeksNames addObject: @"星期一"];
- [weeksNames addObject: @"星期二"];
- [weeksNames addObject: @"星期三"];
- [weeksNames addObject: @"星期四"];
- [weeksNames addObject: @"星期五"];
- [weeksNames addObject: @"星期六"];
- [weeksNames addObject: @"星期日"];
- NSLog(@"星期名字");
- NSLog(@"==== ====");
- int i;
- for (i=0; i < [weeksNames count];i++)
- NSLog(@"%2i %@ ", i+1, [weeksNames objectAtIndex: i]);
- [weeksNames release];
- return 0;
- }
[[NSMutableArray alloc] initWithCapacity: 3] , 可以初始化可变数组并分配3个初始单元,
如果超过了容量会自动追加的。
addObject方法可以向数组中添加元素。