你如何停止快速枚举?

bme*_*nde 6 for-loop objective-c fast-enumeration for-in-loop

一旦你得到你想要的东西,你将如何停止快速枚举.

在for循环中,我知道你只需将计数器数设置为千分之一.例:

for (int i=0;i<10;i++){
    if (random requirement){
        random code
        i=1000;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以没有将快速枚举转换为正向循环类型的东西(通过比较我[array count]如何在过程中停止快速枚举?

Vik*_*ica 11

来自文档

for (NSString *element in array) {
    if ([element isEqualToString:@"three"]) {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果要在达到某个索引时结束枚举,基于块的枚举可能会更好,因为它在枚举时为您提供索引:

[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    //…
    if(idx == 1000) 
        *stop = YES;
}];
Run Code Online (Sandbox Code Playgroud)

  • 它们很棒,在Apples API中变得越来越重要.你应该熟悉它们. (4认同)