訪問元素

NSArray *myColors = @[@"Red", @"Green", @"Blue", @"Yellow"];
// Preceding is the preferred equivalent to [NSArray arrayWithObjects:...]

獲得單個專案

objectAtIndex:方法提供單個物件。NSArray 中的第一個物件是索引 0.由於 NSArray 可以是同質的(持有不同型別的物件),返回型別是 id任何物件)。 (可以將 id 分配給任何其他物件型別的變數。)重要的是,NSArrays 只能包含物件。它們不能包含像 int 這樣的值。

NSUInteger idx = 2;
NSString *color = [myColors objectAtIndex:idx];
// color now points to the string @"Green"

Clang 提供了更好的下標語法作為其陣列文字功能的一部分

NSString *color = myColors[idx];

如果傳遞的索引小於 0 或大於 count - 1,則這兩個都丟擲異常。

第一件和最後一件

NSString *firstColor = myColors.firstObject;
NSString *lastColor = myColors.lastObject;

firstObjectlastObject 是計算屬性並返回 nil 而不是為空陣列崩潰。對於單個元素陣列,它們返回相同的物件。雖然,直到 iOS 4.0 才將 firstObject 方法引入 NSArray

NSArray *empty = @[]
id notAnObject = empty.firstObject;    // Returns `nil`
id kaboom = empty[0];    // Crashes; index out of bounds