我有一个方法只能使用最多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)];
这样可以正常工作,但是我并不总是知道方法需要处理的数组的大小,因此手动调用它不会起作用。
我怎么能绕过这个?
谢谢!
答案 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或更小的值。