我有一个 NSArray,我想将它分成两个相等的部分(如果奇数“计数”然后添加到后一个新数组) - 我想将它拆分为“中间”可以这么说。
以下代码完全符合我的要求,但有更好的方法吗?:
// 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(????, ????)]]];
有谁知道我是否朝着正确的方向前进或指出我正确的方向?
谢谢!