nsmutable 배열에서 정렬
-
18-09-2019 - |
문제
내 게임에서 다음 데이터가 있다고 가정 해 봅시다. Cocos2d에서 게임을 개발했습니다.
Name Score
Sagar 10000
Amit 2000
Vishal 90
위의 데이터는 plist 파일에 저장됩니다.
PLIST는 루트로 배열을 가지고 있습니다.
그 안에는 10 개의 사전이 있습니다.
각 사전에는 두 가지 값이 있습니다.
- 문자열 값 - 이름
- 숫자 값 - 점수
내가 사용할 때
NSMutableArray *x=[[NSMutableArray alloc] initWithContentsOfFile:@"Sagar.plist"];
이 변동성 배열을 점수별로 정렬하고 싶습니다.
가능합니까?
해결책
정렬 설명자 사용 :
NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease];
NSArray * descriptors = [NSArray arrayWithObject:sortByScore];
NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];
다른 팁
보다 [NSMutableArray sortUsingDescriptors:]
, [NSMutableArray sortUsingComparator:]
등등. NSMutableArray는 정렬을위한 몇 가지 방법을 제공합니다. 이 경우 10.5 전에 호환되어야한다면 디스크립터 방법과 스노우 레오파드 앱의 비교기 방법을 사용합니다.
나는 iPhone을 믿습니다. 당신의 옵션은 있습니다
- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;
그리고
- (void)sortUsingSelector:(SEL)comparator;
여기에는 괜찮은 정보가 있습니다.http://www.cocoadev.com/index.pl?sortusingselector
편집 : whoops! Cocos2d를보고 iPhone 질문이라고 가정했습니다.
제휴하지 않습니다 StackOverflow