objective-c - 按对象值对NSMutableArray排序

标签 objective-c ios cocoa-touch

Possible Duplicate:
How to sort an NSMutableArray with custom objects in it?


在这里,我正在对NSMutableArray newsDataArray进行排序,其中包含具有int属性newsID的NewsData对象。现在正在工作。但是我怎样才能更好地做到这一点。有没有更好的方法...

NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc] initWithKey:@"newsID" ascending:NO];
NSArray *tempArray = [newsDataArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDesc]];
NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:tempArray];
NSLog(@"sortedArray=%@" ,sortedArray);

当我在块中使用以下方法时,显示一些错误。我想将newsDataArray排序为最终结果...。任何人都给我一个清晰的示例...

最佳答案

有几种方法,这里使用comparator

对于NSArray-> new Array对象:

array = [array sortedArrayUsingComparator: ^(id a, id b) {
    return [a.newsTitle compare:b.newsTitle]
}

对于NSMutableArray->就位:
[array sortUsingComparator: ^(id a, id b) {
    return [a.newsTitle compare:b.newsTitle]
}];

按标量排序:
[array sortUsingComparator: ^(id a, id b) {
    if ( a.newsID < b.newsID) {
        return (NSComparisonResult)NSOrderedAscending;
    } else if ( a.newsID > b.newsID) {
        return (NSComparisonResult)NSOrderedDescending;
    } 
    return (NSComparisonResult)NSOrderedSame;
}];

关于objective-c - 按对象值对NSMutableArray排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458867/

相关文章:

iphone - 如何使用 iPhone SDK 创建 PDF 文档?

ios - 多个动态绘制的多边形拖动

ios - 为 iCloud 冲突合并 UIDocument 更改

objective-c - iOS 6,转场 : prepareForSegue doesn't get called when tapping on UITableViewCell at first time

objective-c - UINavigationController 的问题

objective-c - Cocoa 中这个简单的正则表达式有什么问题

javascript - 如何将javascript注入(inject)到uiwebview中

ios - 从 SpriteKit 中的类播放音频

ios - Monotouch 中是否有 NSString 的 "stringByReplacingCharactersInRange"方法?

ios - 使用数字格式化程序指定文本字段中的小数位数