私は NSArray を持っていて、それを 2 つの等しい部分に分割したい (「カウント」が奇数の場合は、後者の新しい配列に追加します) - いわば「真ん中に」分割したいのです。
次のコードはまさに私が望んでいることですが、より良い方法はありますか?:
// NOTE: `NSArray testableArray` is an NSArray of objects from a class defined elsewhere;
NSMutableArray *leftArray = [[NSMutableArray alloc] init];
NSMutableArray *rightArray = [[NSMutableArray alloc] init];
for (int i=0; i < [testableArray count]; i=i+1) {
if (i < [testableArray count]/2) {
[leftArray addObject:[testableArray objectAtIndex:i]];
}
else {
[rightArray addObject:[testableArray objectAtIndex:i]];
}
}
leftArray と rightArray が作成されると、それらは変更されないため、「変更可能」である必要はありません。ObjectsAtIndexes メソッドまたはいくつかの高速列挙メソッドを使用して上記のコードを実現する方法があると思いますが、次のコード (または他のバリエーション) を機能させることができません。
NSArray *leftArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
NSArray *rightArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
私がこれで正しい方向に進んでいるか、正しい方向に向けているかを誰かが知っていますか?
ありがとう!