ios - NSMutableArray 按标题排序

标签 ios iphone objective-c

我有 NSMutableArray 可以包含两个对象:

NSString 和这个:

@interface FileDownloadItem : NSObject

@property (nonatomic, retain) NSString *title;
.......
@end

我希望能够根据标题或字符串对 NSMutableArray 进行排序。 在我使用数组中的 NSString 之前,我使用这个命令:

NSSortDescriptor * sortDescriptor = [[[NSSortDescriptor alloc]initWithKey:@"title" ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease];

NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
favoritesArray = [[NSMutableArray alloc] initWithArray:[[[FavoritesRep sharedFavoritesRep] favoritesArray] sortedArrayUsingDescriptors:sortDescriptors]];

但现在它只是崩溃。

最佳答案

这是一个正确的解决方案:

NSArray *sortedArray = [myArrayToSort sortedArrayUsingComparator:^(id obj1, id obj2) {
    if (! [obj1 isKindOfClass:[NSString class]])
        obj1 = [obj1 title];
    if (! [obj2 isKindOfClass:[NSString class]])
        obj2 = [obj2 title];
    return [obj1 caseInsensitiveCompare:obj2];
}

关于ios - NSMutableArray 按标题排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875151/

相关文章:

ios - 由于未捕获的异常 'Texture Atlas Not Found' 而终止应用程序

iphone - 无法访问 Apple Developer Provisioning Portal

ios - 动画 UIView 没有按预期工作

ios - 与阿拉莫菲尔合作

ios - 连接节点错误 kAudioUnitErr_PropertyNotWriteable 时 AudioToolbox AUGraph 失败

ios - Swift 在不知道类型的情况下转换泛型

iphone - 在 iPhone 上播放生成的音频

iphone - 将数据从 iPhone 发布到 ASP.NET

iphone - 如何将 MKMapView 用户位置蓝点更改为选择的图像?

ios - 将 NSInteger 与排序后的 NSIntegerArray objectAtIndex 进行比较