2010-04-21 2 views
0

배열을 재정렬하려고합니다 (90 개 항목을 맨 위로 이동하고 나머지 모든 항목을 아래로 이동).배열 재정렬

이 방법이 있습니까?

답변

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

NSMutableArray를 사용해야합니다. removeObjectAtIndex:을 사용하여 이동할 개체를 제거한 다음 insertObject:atIndex:으로 새 위치에 붙여야합니다.

4

NSMutableArray 인 경우 -exchangeObjectAtIndex:withObjectAtIndex:을 사용하여 항목 0과 맨 위로 이동할 항목을 바꿀 수 있습니다. retainrelease으로 엉망으로 처리 할 필요가 없습니다.

(편집 -이 질문자가 원하는 정확히 무엇인가 - KennyTM에 의해 리스폰스가이 경우에 대한 올바른 하나입니다)

+0

항목 0이 맨 아래로 이동합니까? – Emil

+0

나는 당신의 질문을 충분히주의 깊게 읽지 않았다. 나는 당신이 단지 교환하고 싶다고 생각했다. 이 경우 KennyTM의 응답이 정확합니다. – Jim

-1

1) 마음 항목에서 계속 90
2) 이동 항목 0..89 일 slot down (func memmove() 사용 가능)
3) 이전 '90'항목을 슬롯 0에 넣습니다.

+0

NSArray와 함께 memmove()를 사용하면 재앙을 초래할 것이라고 확신합니다. 우리가 여기 C 배열을 말하는 것은 아닙니다. –

+0

동의, 그건 끔찍한 생각입니다. – shosti