NSPredicate Sort Array and Order DESC - PullRequest
       12

NSPredicate Sort Array and Order DESC

2 голосов
/ 06 декабря 2011

У меня есть NSMutableArray, содержащий TBPosts, который я хотел бы отфильтровать в порядке убывания в соответствии с commentsCount и likesCount из TBPost.

Первоначально первым объектом в отфильтрованном массиве будет объект с наибольшим количеством комментариев и лайков, который можно решить, сложив их вместе. Поэтому я попробовал следующий запрос и получил ошибку Unable to Parse. Пожалуйста, вы можете сказать мне, где я иду не так?

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

1 Ответ

3 голосов
/ 06 декабря 2011

фильтрация не сортировка.Вы используете неправильный метод.

При использовании компаратора это будет выглядеть так:

[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;

}];
...