문제

내 게임에서 다음 데이터가 있다고 가정 해 봅시다. 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 질문이라고 가정했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top