相关疑难解决方法(0)

将包含4000多个对象的NSArray分成多个数组,每个包含30个对象的简单方法是什么?

什么是一种简单的方法将NSArray中的4000个对象分成多个数组,每个数组包含30个对象?

所以现在我有一个NSArray*东西,其中[stuff count] = 4133.

我想创建一个包含30个对象数组的新数组.什么是循环的好方法,将*东西分解为新的30个对象数组,并将它们放在更大的数组中?

显然,最后一个数组中不会有30个(它将有余数)但我需要正确处理它.

合理?如果有一种有效的方法可以让我知道.

iphone xcode cocoa objective-c nsarray

15
推荐指数
1
解决办法
4015
查看次数

如何将NSArray分成两个相等的部分?

我有一个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]];
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦leftArray和rightArray被制作出来,我就不会改变它们,所以它们不需要是"可变的".我认为可能有一种方法可以使用ObjectsAtIndexes方法或一些快速枚举方法来完成上述代码?但是我无法使用以下代码(或其他变体):

NSArray *leftArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
NSArray *rightArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
Run Code Online (Sandbox Code Playgroud)

有没有人知道我是否朝着正确的方向前进或指向正确的方向?

谢谢!

objective-c nsmutablearray nsarray

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

nsarray ×2

objective-c ×2

cocoa ×1

iphone ×1

nsmutablearray ×1

xcode ×1