你能告诉我错误是什么吗?
for (int r=[list count]-1; r>=0;r--) {
NSMutableArray *temp;
temp=[list objectAtIndex:r];
[list insertObject:temp atIndex:r++];
}
第一次通话时,[列表计数]为2.
答案 0 :(得分:4)
你在循环中递增循环变量r
,所以它永远不会减少到零。
您需要更改此行:
[list insertObject:temp atIndex:r++];
或许:
[list insertObject:temp atIndex:r + 1];
答案 1 :(得分: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)。
答案 2 :(得分:0)
r++
是r+1
的简写?事实并非如此,这意味着r=r+1
。