2013-10-12 5 views
0

저는 노래 목록을 아티스트별로 정렬하는 중입니다. 내 코드가 작동하고 노래와 아티스트를 인쇄 할 수 있습니다. 이제는 정렬하여 목록을 아티스트별로 인쇄하려고합니다. 이것은 정렬에 대한 나의 첫 번째 시도이며 나는 여기서 간단한 것을 놓치고 있어야한다는 것을 압니다. 내가 ~ 기대하지 않는 식별자 'listSongs'의 '사용'및 사용 - 이것은 모두 @implementation 파일에 있습니다.NSArray를 알파벳 순으로 정렬하십시오.

도움을 주신다면 미리 감사드립니다. 여기

이 내 구현 섹션

#import "Library.h" 

@implementation Library 

@synthesize list; 

-(id) initList 
{ 
    self = [super init]; 
    if (self){ 
     list = [NSMutableArray array]; 
    } 
    return self; 
} 

-(id) init 
{ 
    return [self initList]; 
} 


-(void) addSong:(Song *)song 

{ 
    [list addObject: song]; 
} 

-(void) listSongs 

{ 
    NSLog(@"The list of my songs"); 

    NSSortDescriptor *sorter; 

    sorter = [[[NSSortDescriptor alloc] initWithKey:@"artist" ascending: YES] 

      NSArray *sortDescriptors = [NSArray arrayWithObjects:sorter]; **// ** Expected ')'** 

      [listSongs sortUsingDescriptors:sortDescriptors]; //**use of undeclared identifier 'listSongs' 

    for (Song *song in list) 
     NSLog(@"%-20s by %s", [song.Title UTF8String], [song.Artist UTF8String]); 
} 
+0

당신이 선언된다 listSongs으로이 라인

[listSongs sortUsingDescriptors:sortDescriptors]; 

를 교체해야? – Fogmeister

+0

나는 그것이 바로 위에 있다고 생각했다. 나는 당신의 질문에 내가 그렇게 생각하지 않는다고 가정하고 있습니다. 만약 당신이 말할 수 없다면 나는 이것에 대해 아주 새롭고 일하는 동안 용어를 알아 내려고 노력하고있다. 고맙습니다! –

+0

.h 파일에서 선언했습니다. 나는 그것을 지금 포스트에 추가했다. –

답변

1

내 인터페이스 섹션

@interface Library : NSObject 

@property (nonatomic, strong) NSMutableArray *list; 

-(id) initList; 

-(void) addSong: (Song *) song; 

-(void) listSongs; 

@end 

당신이있는 NSArray * sortedArray = 사용해야합니다 [listSongs의 arraySortedUsingDescriptors을 : sortDescriptors]

기본적으로이 메서드는 정렬 된 배열을 반환하며 정렬되지 않은 배열에서 호출되며 정렬 설명 자의 배열이 제공됩니다.

+0

좋아, 그래서 정렬 된 데이터를 "보유"하기 위해 별도의 배열을 설정해야합니다. 알 겠어. 고맙습니다. –

+0

이 답변으로 문제가 해결되면 받아 들여야합니다. 사람들이 어떤 답을 얻었는지 알기 위해 –

+0

했습니다. 다시 한 번 감사드립니다. –

0

내가 알기로, 당신이하려는 것은 list을 속성으로 선언하는 것입니다.

당신은

self.list = [self.list sortUsingDescriptors:sortDescriptors]; 
+0

이제 sortDescriptors가 선언되지 않았다는 말을 들려 주시겠습니까 ??? –

관련 문제