Arrays 数组

之前我们已经简单介绍了 NSArray 类,根据前面的内容你应该也猜得到,除此之外还有一个 NSMutableArray 类。同理,你可以用 @ 符号来创建数组。

我们先来看一个基础的数组例子。下面这段代码用快速枚举的方法循环了一个数组:

NSArray *villains = @[@"Weeping Angels", @"Cybermen", @"Daleks",
@"Vashta Nerada"];

for (NSString *villain in villains) {
    NSLog(@"Can the Doctor defeat the %@? Yes he can!", villain);
}

在 @[...] 前的代码,就是用基本的初始化器,创建了一个数组,另一个常用的方初始化方法是 arrayWithObjects 方法,这种方法在初始化的时候,就定义好了数组里的每一个对象。

NSArray *villains = [NSArray arrayWithObjects:@"Weeping Angels",
@"Cybermen", @"Daleks", @"Vashta Nerada", nil];

敲黑板注意了,数组结尾的地方有个 nil ,因为 NSArray 需要知道这个数组在哪里结束,如果你不写这个 nil,Xcode会报错。

你也可以用 reverseObjectEnumerator 方法来反序循环数组:

for (NSString *villain in [villains reverseObjectEnumerator]) {
 NSLog(@"Can the Doctor defeat the %@? Yes he can!", villain);
}

你也可以像在 Swift 里一样,从 0 开始索引这个数组里的内容:

NSLog(@"The %@ are my favorite villains.", villains[2]);

2012 年之前的老版本代码可能会用 objectAtIndex 方法来索引数组内容:

NSLog(@"The %@ are my favorite villains.", [villains objectAtIndex:
2]);

results matching ""

    No results matching ""