我正在尝试对一个数组进行重新排序(将一个90项移到顶部,然后将所有其他项向下移动)。
有办法做到这一点吗?
答案 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以及要移动到顶部的项目。无需弄乱retain
和release
。
(编辑 - 这不是提问者想要的 - KennyTM对这种情况的反应是正确的)
答案 2 :(得分:1)
您需要使用NSMutableArray。使用removeObjectAtIndex:
删除要移动的对象,然后使用insertObject:atIndex:
将其粘贴到新位置。
答案 3 :(得分:-1)
1)记住第90项
2)将项目0..89移动一个槽(可以使用func memmove())
3)将前“90”项放入0号槽