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

标签 iphone objective-c xcode cocoa nsarray

有什么简单的方法可以将包含 4000 个对象的 NSArray 拆分为多个数组,每个数组包含 30 个对象?

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

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

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

有道理吗?让我知道是否有有效的方法来执行此操作。

最佳答案

在我的脑海中,类似(未经测试)的东西:

NSMutableArray *arrayOfArrays = [NSMutableArray array];

int itemsRemaining = [stuff count];
int j = 0;

while(itemsRemaining) {
    NSRange range = NSMakeRange(j, MIN(30, itemsRemaining));
    NSArray *subarray = [stuff subarrayWithRange:range];
    [arrayOfArrays addObject:subarray];
    itemsRemaining-=range.length;
    j+=range.length;
}

MIN(30, i) 处理最后一个不一定包含 30 项的数组。

关于iphone - 将包含 4000 多个对象的 NSArray 分解为多个数组,每个数组包含 30 个对象的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6852012/

相关文章:

ios - 从 JPEG-2000 创建 openGL 纹理的快速方法?

ios - if 语句 (CGAffineTransform) 不起作用

objective-c - NSTextView复制粘贴问题

iOS,访问保存在 iPad 上的文件

ios - 锁定时 AVAudioPlayer 在 iPhone 5 中不播放音频

iphone - 从 iOS 应用调用 Lua 脚本

iphone - 将 NSDictionary 保存到 NSUserDefaults

ios - 从 Xcode 中删除的文件在运行时仍在使用

ios - Alamofire 模块不使用 Swift 3.0.1 编译

iphone - iOS 7升级后,UISearchbar中的UItextField失败