如何判断我是否在Objective-C中的Y循环中的for X的最后一次迭代

Sam*_*Lee 6 objective-c

我有一个循环使用for(在someArray中的NSObject*obj){}语法.是否有一种简单的方法可以判断我是否在循环的最后一次迭代中(即不必使用[someArray count])

cod*_*gic 16

也许这会奏效吗?

if ( obj == [ someArray lastObject ] ) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)


wfa*_*arr 15

您可以NSArray#lastObject用来确定是否obj等于[NSArray lastObject].

for (NSObject *obj in someArray) {
    if ([someArray lastObject] == obj) {
        NSLog(@"Last iteration");
    }
}
Run Code Online (Sandbox Code Playgroud)


Abi*_*ern 5

而不是在每次迭代打电话到阵列中,它可能是更好的缓存阵列中的最后一个对象:

NSObject *lastObject = [someArray lastObject];
for (NSObject *obj in someArray) {

    // Loop code

    if (obj == lastObject) {
        // do what you want for the last array item
    }
}
Run Code Online (Sandbox Code Playgroud)