数组重新排序

时间:2010-04-21 18:48:49

标签: iphone arrays

我正在尝试对一个数组进行重新排序(将一个90项移到顶部,然后将所有其他项向下移动)。

有办法做到这一点吗?

4 个答案:

答案 0 :(得分:7)

NSMutableArray* array;
...
id ninety = [array objectAtIndex:90];
[ninety retain];  // needs retain because -removeObject will release that object.
[array removeObjectAtIndex:90];
[array insertObject:ninety atIndex:0];
[ninety release];

答案 1 :(得分:4)

如果是NSMutableArray,您可以使用-exchangeObjectAtIndex:withObjectAtIndex:来交换项目0以及要移动到顶部的项目。无需弄乱retainrelease

(编辑 - 这不是提问者想要的 - KennyTM对这种情况的反应是正确的)

答案 2 :(得分:1)

您需要使用NSMutableArray。使用removeObjectAtIndex:删除要移动的对象,然后使用insertObject:atIndex:将其粘贴到新位置。

答案 3 :(得分:-1)

1)记住第90项 2)将项目0..89移动一个槽(可以使用func memmove())
3)将前“90”项放入0号槽