在数组的不同部分多次调用相同的方法

时间:2016-04-21 21:35:50

标签: ios objective-c arrays

我有一个方法只能使用最多100个objets的数组。

但是我有一个包含100个以上对象的数组,如何多次调用此方法,以便它可以用于具有100个以上对象的数组?

假设我有一个包含264个对象的数组。

我可以这样调用方法3次:

[self doSomething:[arrayWithMoreThan100Objects subarrayWithRange:NSMakeRange(0, 100)];
[self doSomething:[arrayWithMoreThan100Objects subarrayWithRange:NSMakeRange(100, 100)];
[self doSomething:[arrayWithMoreThan100Objects subarrayWithRange:NSMakeRange(200, 64)];

这样可以正常工作,但是我并不总是知道方法需要处理的数组的大小,因此手动调用它不会起作用。

我怎么能绕过这个?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用循环:

NSInteger increment = 100;
for (NSInteger start = 0; start < arrayWithMoreThan100Objects.count; start += increment) {
    NSInteger length = MIN(increment, arrayWithMoreThan100Objects.count - start);
    NSRange range = NSMakeRange(start, length);
    [self doSomething:[arrayWithMoreThan100Objects subarrayWithRange:range];
}

如果数组中剩余的对象少于100个,则length的值设置为100或更小的值。