У меня есть 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(????, ????)]]];
Кто-нибудь знает, схожу ли я в правильном направлении с этим или укажу на меня в правильном направлении?
Спасибо!