NSPredicate Sort Array和Order DESC

时间:2011-12-05 23:06:49

标签: objective-c cocoa-touch filter nsmutablearray nspredicate

我有NSMutableArray包含TBPosts,我希望根据commentsCount的{​​{1}}和likesCount按降序过滤。

最初,过滤后的数组中的第一个对象将是具有最多注释和喜欢的对象,可以通过将两者加在一起来计算出来。所以我尝试了以下查询并收到Unable to Parse错误。请你告诉我我哪里出错了?

TBPost

1 个答案:

答案 0 :(得分:3)

过滤不是排序。你使用的是错误的方法。

使用比较器,它看起来像这样:

[posts sortUsingComparator:^NSComparisonResult(id p1, id p2) {
    if (p1.commentsCount + p1.likesCount < p2.commentsCount + p2.likesCount)
        return (NSComparisonResult)NSOrderedAscending;
    if (p1.commentsCount + p1.likesCount > p2.commentsCount + p2.likesCount)
        return (NSComparisonResult)NSOrderedDescending;
    return (NSComparisonResult)NSOrderedSame;

}];