Objective c 在如何引用数组中的下一个对象中使用

Objective c 在如何引用数组中的下一个对象中使用,objective-c,Objective C,当“for in”循环运行时,是否可以查找下一个“string”的值 假设您有一个名为MyArrayOfString的数组,其中包含以下值: 0“苹果” 1“梨” 2“橙色” 3“葡萄” 您希望使用“for in”循环迭代数组: for(MyArrayOfString中的NSString*字符串) { NSLog(字符串); } 无论如何,在“for-in”循环中,在下一个字符串运行时是否可以查看其值?假设它当前正在查看1“Pear”字符串。是否仍要查找下一个字符串2“Orange”的值?虽然在

当“for in”循环运行时,是否可以查找下一个“string”的值

假设您有一个名为MyArrayOfString的数组,其中包含以下值:

0“苹果” 1“梨” 2“橙色” 3“葡萄”

您希望使用“for in”循环迭代数组:

for(MyArrayOfString中的NSString*字符串) { NSLog(字符串); }


无论如何,在“for-in”循环中,在下一个字符串运行时是否可以查看其值?假设它当前正在查看1“Pear”字符串。是否仍要查找下一个字符串2“Orange”的值?

虽然在目标c中使用foreach样式循环无法直接实现这一点,但有几种方法可以完成相同的任务

请假定

NSArray *myArrayOfStrings = @[@"Apple", @"Pear", @"Orange", @"Grape"];
环路标准
虽然在目标c中使用foreach样式的循环无法直接实现这一点,但有几种方法可以完成相同的任务

请假定

NSArray *myArrayOfStrings = @[@"Apple", @"Pear", @"Orange", @"Grape"];
环路标准
我觉得情况就是这样。我只是想确保“for in”循环中没有我不知道的一些特性。谢谢。当你到达最后一个对象时,你会得到一个越界异常。请改用i<[MyArrayOfString count]-1。@z现在,当您分配给下一个查找objectAtIndex:i+1的\u字符串时,会出现这种情况。您可能还需要查看
-[NSArray enumerateObjectsUsingBlock:
,它与一个同时传递对象及其索引的块循环。在本例中,这可以将赋值保存到
string
。@zsnow看起来不错,但实际上没有什么可以阻止您将块的参数列表中的
id obj
更改为
NSString*string
。我通常就是这么做的,我有一种感觉就是这样。我只是想确保“for in”循环中没有我不知道的一些特性。谢谢。当你到达最后一个对象时,你会得到一个越界异常。请改用i<[MyArrayOfString count]-1。@z现在,当您分配给下一个查找objectAtIndex:i+1的\u字符串时,会出现这种情况。您可能还需要查看
-[NSArray enumerateObjectsUsingBlock:
,它与一个同时传递对象及其索引的块循环。在本例中,这可以将赋值保存到
string
。@zsnow看起来不错,但实际上没有什么可以阻止您将块的参数列表中的
id obj
更改为
NSString*string
。这就是我通常做的。是的,如果你想访问实际数组索引,最好使用
for(int I=…
类型循环,vs“for in”。你可以用“for in”循环保留你自己的索引,但是你失去了显式循环索引给你的“连接”。是的,如果你想访问实际数组索引,最好使用
for(int i=…
键入loop,vs“for in”。您可以使用“for in”循环保留自己的索引,但会丢失显式循环索引提供给您的“连接”。
[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