いわゆる配列のことです。リストの要素数が変動する場合は NSMutableArray を使います。
NSArray
配列としてNSArrayがあります。基本的な定義は Creating NSArray Objects Using Array Literals によるとリテラルで入れてもいいようです
1 |
NSArray *array = @[sameObject, @"arr", @89]; |
以前はこんな風に書いていましたが
1 |
NSArray *arrayOld = [NSArray arrayWithObjects:@"arr1", @"arr2", @"arr3", nil]; |
NSArray のその他のメソッド
ざっくり以下のようなことができます。
- 要素を取り出す
- 全要素数を取得する
- 要素の検索
- 最後の要素を返す
- 2つの配列が同じ要素であるか判定
- ソートする
- 結合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSArray *array = @[@"arr0", @"arr1", @"arr2"]; // 要素を取り出す NSString *str = array[2]; NSLog(@"%@",str); // str は3番目のarr2 // 全要素数を取得する NSUInteger size = [array count]; NSLog(@"%lu",size); // 要素数は3 // 要素の検索 BOOL result = [array containsObject:@"arr2"]; NSLog(@"%d",result); // BOOL値が1ならYES // 最後の要素を返す NSString *obj = [array lastObject]; NSLog(@"%@",obj); // obj には arr2 が返ってくる //2つの配列が同じ要素であるか判定 NSArray *array2 = @[@"arr0", @"arr1", @"arr2"]; BOOL comp = [array isEqualToArray: array2]; NSLog(@"%d",comp); // BOOL値が1なのでYES NSArray *array3 = @[@"arr3", @"arr1", @"arr2"]; BOOL comp2 = [array isEqualToArray: array3]; NSLog(@"%d",comp2); // BOOL値が0なのでNO //ソートする NSArray *array4 = @[@"arr6", @"arr4", @"arr5"]; NSArray *sortedResult = [array4 sortedArrayUsingSelector:@selector(compare:)]; for (id value in sortedResult) { NSLog(@"%@",value); } // ソートされて // @[@"arr4", @"arr5", @"arr6"] となっている // 結合する NSArray *fruit = @[@"apple", @"berry", @"orange"]; NSArray *city = @[@"Tokyo", @"London", @"NewYork"]; NSArray *joint = [fruit arrayByAddingObjectsFromArray:city]; for (id value in joint) { NSLog(@"%@",value); } // 2つが結合されて //@[@"apple", @"berry", @"orange", @"Tokyo", @"London", @"NewYork"] となる } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end |
NSArrayは残念ながら可変長ではありませんから、決まり切った要素の塊を扱うときだけになります。可変長が必要な場合は以下を参考に
NSMutableArray は NSArray を継承しているのですが、要素数を変更できるので、追加、挿入、削除などのメソッドが使えるよう...