2014-02-21 4 views
0

여기에 표시된 방법을 사용하여 다른 객체를 인덱스의 위아래로 이동하여 편집하려는 'MutableArray'가 있습니다 : NSMutablearray move object from index to index.배열 크기를 변경하지 않고 NSMutableArray에서 객체를 움직입니다.

내 문제는 'insertObject : atIndex :'전에 'removeObjectAtIndex'메서드를 먼저 처리하므로 배열이 실제로 크기가 줄어들어 특정 전환을 불가능하게한다는 것입니다. 예를 들어 내 '배열'에 3 명의 멤버가 있고 세 번째 멤버의 인덱스를 2에서 2로 변경하면 아무 일도 일어나지 않지만 실제로 제거하면 인덱스 바인딩이 [0,1]이므로 앱이 다운됩니다.

다음은 배열로 이동을 구현하는 데 사용하는 코드입니다. Parse Issue : 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]; 
      } 

     } 
    } 
} 

답변

0

어떻게 인덱스 값을 교체에 대한 :

[queue replaceObjectAtIndex:queueCount withObject:member]; 

오류가있는 '['괄호에서 가장 가능성이 여기에 해당되지 성명

+0

경우. 내 배열이 [a, b, c, d, e]이고 e를 두 번째 자리로 이동하려고합니다. UR 방법을 사용하면 결과는 [a, e, c, d, e]가됩니다. 반면 [a, e, b, c, d]는 – snapfish

+0

미안합니다. 당신은 exchangeObjectAtIndex : withObjectAtIndex : –

+0

을 사용할 수 있습니다. 그러나 만약 내가 그것을 원한다면 [a, e, c, d, b]가되는 반면 [e, b, c, d]는 오직 e 배열에있는 하나의 객체를 새 위치로 이동하고 나머지 순서를 유지합니다. – snapfish

관련 문제