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