在Xcode7中写了一段OC代码,在一个for循环中嵌套了一个while循环。因为for循环中有一个异步执行,我想等异步执行完,再执行下一个for循环,所以用while循环做了一个等待。
代码如下:
BOOL flag = NO;
for (id obj in array) {
// 执行异步方法, 执行完后设置flag=YES;
......
while(true) {
if (flag)
break;
}
}
我原以为break,只能跳出最近的一个循环,也就是只跳出while循环。
结果发现了一个神奇的问题:
在debug模式下,确实跟我的预期一样,只跳出了while循环,然后进入下一个for循环。
但是!!!当我切换到release模式下,break跳出了for循环!!!
我在build setting里,大概对比了release模式及debug模式的设置,没发现跟这种编译相关的不同选项。
不知哪位大神能解答我疑惑???我会继续跟进,看看什么到底是什么原因。