2011-12-05 88 views
2

我有一个NSMutableArray包含TBPosts,我想根据TBPostcommentsCountlikesCount降序过滤。NSPredicate Sort Array and Order DESC

最初,被过滤的数组中的第一个对象将是具有最大数量的注释和喜欢的对象,可以通过将这两个对象加在一起来计算出来。所以我尝试了以下查询并收到无法解析错误。请你能告诉我哪里出错了吗?

[posts filterUsingPredicate:[NSPredicate predicateWithFormat:@"post.commentsCount + post.likesCount DESC"]]; 

回答

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; 

}]; 
+0

是否一种描述得做我想做的能力吗? –

+0

我只是检查文档 - 我通常更喜欢比较,但sortDescriptor会做。 – vikingosegundo

+0

我想我会去比较,感谢您的帮助! –