diff --git a/Playlist/PlaylistLoader.m b/Playlist/PlaylistLoader.m index 3a532a892..07a4bcc34 100755 --- a/Playlist/PlaylistLoader.m +++ b/Playlist/PlaylistLoader.m @@ -201,15 +201,11 @@ NSArray *sortedURLs; if (sort == YES) { - NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"absoluteString" ascending:YES]; - - sortedURLs = [expandedURLs sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; - - [sortDescriptor release]; + sortedURLs = [expandedURLs sortedArrayUsingSelector:@selector(compareTrackNumbers:)]; } else { - sortedURLs = [expandedURLs copy]; + sortedURLs = expandedURLs; } for (url in sortedURLs) diff --git a/Spotlight/NSString+CogSort.h b/Spotlight/NSString+CogSort.h index 4cbb590a6..45f6e1745 100644 --- a/Spotlight/NSString+CogSort.h +++ b/Spotlight/NSString+CogSort.h @@ -14,3 +14,9 @@ - (NSComparisonResult)compareTrackNumbers:(NSString *)aString; @end + +@interface NSURL (CogSort) + +- (NSComparisonResult)compareTrackNumbers:(NSURL *)aURL; + +@end diff --git a/Spotlight/NSString+CogSort.m b/Spotlight/NSString+CogSort.m index 65ce6a655..b14fd928e 100644 --- a/Spotlight/NSString+CogSort.m +++ b/Spotlight/NSString+CogSort.m @@ -19,3 +19,12 @@ } @end + +@implementation NSURL (CogSort) + +- (NSComparisonResult)compareTrackNumbers:(NSURL *)aURL +{ + return [[self absoluteString] compareTrackNumbers:[aURL absoluteString]]; +} + +@end