2011-12-05 157 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

我想我會去比較,感謝您的幫助! –