在NSMutableArray中移动对象而不更改数组大小

时间:2014-02-21 03:12:57

标签: nsmutablearray

我想要编辑'MutableArray',方法是通过此处显示的方法在索引中上下移动不同的对象:NSMutablearray move object from index to index

我的问题是Xcode首先在'insertObject:atIndex:'之前处理'removeObjectAtIndex'方法,因此数组实际上缩小了大小,这使得某些转换无法进行。一个例子是如果我的'数组'有3个成员并且我将第三个成员的索引从2更改为2,那么什么都不应该发生但实际上应用程序崩溃,因为删除后索引绑定现在是[0,1]。

下面是我用来在数组中实现移动的代码,我也得到一个解析问题:编译器在queue.count后面的'if'语句中出现了预期的标识符错误。对这两方面的任何帮助都将非常感激。

-(void)makeRankChange:(NSMutableArray *)queue{
    for (int queueCount =0; queueCount<queue.count; queueCount++) {
        QueueMember *member = [queue objectAtIndex:queueCount];
        if (member.rank != queueCount+1) {
            if ([0<member.rank] && [member.rank < [queue.count(expected identifier here:Im not sure why)]]) {
                [queue insertObject:member atIndex:member.rank-1];
                [queue removeObjectAtIndex:queueCount];
            }

        }
    }
}

1 个答案:

答案 0 :(得分:0)

如何替换索引处的值:

[queue replaceObjectAtIndex:queueCount withObject:member];

错误最有可能来自if语句中的'['括号