请问您可以告诉我什么是错误?循环执行无限次
for (int r=[list count]-1; r>=0;r--) {
NSMutableArray *temp;
temp=[list objectAtIndex:r];
[list insertObject:temp atIndex:r++];
}
在第一次通话,[单数]为2
请问您可以告诉我什么是错误?循环执行无限次
for (int r=[list count]-1; r>=0;r--) {
NSMutableArray *temp;
temp=[list objectAtIndex:r];
[list insertObject:temp atIndex:r++];
}
在第一次通话,[单数]为2
你递增循环内的循环变量r
,所以它永远不能递减到零。
你需要改变这一行:
[list insertObject:temp atIndex:r++];
或许:
[list insertObject:temp atIndex:r + 1];
保罗的权利。也许你认为r++
是r+1
的简写?这不是,这意味着r=r+1
。
由于循环开始通过测试(r == 1 & & 1> = 0)并且从该点起,r永不改变,所以您有无限循环。您只需在r(1)处抓住对象并将其插入r(1),然后递增r(r == 2)。最后,循环结束,r得到递减(r == 1),然后再次运行测试(1> = 0),所以它运行循环并发生完全相同的事情。
您可能想要在下一个索引(r + 1)处插入temp,但由于数组只有2个位置,所以会导致崩溃。你需要做一个addObject:为了增加数组的大小(并且在这种情况下在r + 1处插入项目)。
对不起。我意识到,只要我发布。 – Label 2011-01-20 09:03:39