簡體   English   中英

在for中如何使用for引用數組中的下一個對象

[英]Using for in how can one refer to next object in array

當“for in”循環正在運行時,是否可以查找下一個“字符串”的值?

假設您有一個名為myArrayOfStrings的數組,其中包含以下值:

0“Apple”1“Pear”2“Orange”3“Grape”

並且您希望使用“for in”循環遍歷數組:

for(NSAtring * myArrayOfStrings中的字符串){NSLog(string); }

無論如何,在“for in”循環內部查看下一個字符串運行時的值是什么? 讓我們說它目前正在看1“梨”字符串。 無論如何都要查找下一個字符串2“Orange”的值?

雖然在目標c中使用foreach-style循環無法直接實現,但有幾種方法可以完成相同的任務。

請假設

NSArray *myArrayOfStrings = @[@"Apple", @"Pear", @"Orange", @"Grape"];

循環標准

for (int i = 0; i < [myArrayOfStrings count]; i++) {
    NSString *string = [myArrayOfStrings objectAtIndex:i];
    NSString *next_string = @"nothing";
    if (i + 1 < [myArrayOfStrings count]) { // Prevent exception on the final loop
        next_string = [myArrayOfStrings objectAtIndex:i + 1];
    }
    NSLog(@"%@ comes before %@", string, next_string);
}

對象枚舉

[myArrayOfStrings enumerateObjectsUsingBlock:^(NSString *string, NSUInteger idx, BOOL *stop) {
    NSString *next_string = @"nothing";
    if (idx + 1 < [myArrayOfStrings count]) { // Prevent exception on the final loop
        next_string = [myArrayOfStrings objectAtIndex:idx + 1];
    }
    NSLog(@"%@ comes before %@", string, next_string);
}];

這兩個選項都輸出:

Apple comes before Pear
Pear comes before Orange
Orange comes before Grape
Grape comes before nothing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM