【发布时间】:2017-05-08 03:17:11
【问题描述】:
我有一个包含播放列表的数组,其中包含我喜欢排序的数字,在我的数字达到 10 之前一切都很好。数组在 1 之后排序为 10 而不是 9,我该如何解决这个问题?
这是我的代码:
NSArray *sortedArray = [NSArray arrayWithArray:playlists];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
playlists = (NSMutableArray*)[sortedArray sortedArrayUsingDescriptors:@[sort]];
playlists = [meshGroups mutableCopy];
编辑:
这里我做了什么改变,以便数组在 9 之后排序 10,而不是在 1 之后:
我变了
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
到
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
return [(NSString*) obj1 compare:(NSString*) obj2 options:NSNumericSearch];
}];
【问题讨论】:
标签: objective-c arrays sorting