2017-02-04

NSArray に subArray を追加した NSArray を返す

Objective-C で NSArray に要素を追加することは出来ない。追加したければ NSMutableArray を使う。

NSArray から NSMutableArray は、mutableCopy で作れる。

NSArray *array = @[@1, @2, @3];
NSMutableArray *mArray = [array mutableCopy];
NSArray *subArray = @[@4, @5, @6];
[mArray addObjectsFromArray:subArray];
NSArray *newArray = [mArray copy];

ただし、「元の NSArray に subArray を追加した NSArray」が欲しいだけなら、mutableCopy を使う必要はない。arrayByAddingObjectsFromArray: というメソッドが使える。上のコードをarrayByAddingObjectsFromArray: を使うとこう書き直せる。

NSArray *array = @[@1, @2, @3];
NSArray *subArray = @[@4, @5, @6];
NSArray *newArray = [array arrayByAddingObjectsFromArray:subArray];

NSMutableArray を一度作らなくて良いので手間が省ける。関数型っぽく書ける点も気に行っている。

No comments:

Post a Comment