2011-12-05 11 views
2

私はTBPostcommentsCountlikesCountに従って降順でフィルタリングしたいTBPostsを含むNSMutableArrayを有します。NSPredicateのソート配列及び順序DESC

最初に、フィルタリングされた配列内の最初のオブジェクトは、コメントと好きな数が最も多いオブジェクトになります。これは、2つのオブジェクトを一緒に追加することで解決できます。だから私は次のクエリを試して、Unable to Parseエラーを受け取ります。私が間違っているところを教えてください。

[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

私はコンパレータに行くと思う、助けてくれてありがとう! –

関連する問題