按字母顺序对NSArray进行排序

路易斯·拉莫斯(Luis Ramos)

我正在努力获取按艺术家排序的歌曲列表。我的代码可以使用,并且可以打印歌曲和歌手。现在,我想对其进行排序并按艺术家打印列表。这是我第一次尝试排序,我知道这里必须缺少一些简单的东西。我得到-预期为')',并且-使用未声明的标识符'listSongs'-全部在我的@implementation文件中。

任何帮助表示赞赏,谢谢你提前。

这是我的界面部分

@interface Library : NSObject

@property (nonatomic, strong) NSMutableArray *list;

-(id) initList;

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

-(void) listSongs;

@end

这是我的实现部分

#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]);
}
威廉·法尔康(William Falcon)

您应该使用NSArray * sortedArray = [listSongs arraySortedUsingDescriptors:sortDescriptors];

基本上,此方法返回一个已排序的数组,在未排序的数组上调用它,并为它提供一个排序描述符数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章