使用query.limit对Parse的排序结果不能正常工作

时间:2014-07-08 02:48:58

标签: ios uitableview sorting parse-platform tableview

我将查询的限制设置为10例如然后我想获得数据集中的最后10个结果并按升序时间排序! 好的,我知道我可以补充一下:

[messages addDescendingOrder:@"createdAt"];
//OR
[messages addAscendingOrder:@"createdAt"];

但这样做是因为它获得了前10条记录或最后10条记录......它不是自己对结果进行排序!!升序基本上是设置结果开始的位置......从底部或从顶部开始。但是我希望结果集返回到最后10个结果,并且这些结果按升序排列。相反,我得到了最后10个结果,但是在表格中我最新的一个在顶部,而最旧的一个在集合中是表格中的最后一个单元格......我希望反过来......

有没有办法让Parse处理这个而不是在设备本身上做逻辑? 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好的,对于遇到类似问题的其他人来说,解决方法是从Parse中反转从查询中获得的结果数组。完成:) 快乐的编码!

我使用了我在另一个问题中找到的关于在StackOverflow上反转数组的代码,但这里又是代码:

@implementation NSArray (Reverse)

- (NSArray *)reversedArray {
    NSMutableArray *array = [NSMutableArray arrayWithCapacity:[self count]];
    NSEnumerator *enumerator = [self reverseObjectEnumerator];
    for (id element in enumerator) {
        [array addObject:element];
    }
    return array;
}

@end

@implementation NSMutableArray (Reverse)

- (void)reverse {
    if ([self count] == 0)
        return;
    NSUInteger i = 0;
    NSUInteger j = [self count] - 1;
    while (i < j) {
        [self exchangeObjectAtIndex:i
                  withObjectAtIndex:j];

        i++;
        j--;
    }
}

@end