【问题标题】:Sorting results from Parse is not working as expected with query.limit使用 query.limit 对 Parse 的结果进行排序无法按预期工作
【发布时间】:2014-07-08 02:48:58
【问题描述】:

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

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

但是这样做是获取前 10 条记录或后 10 条记录......它本身并没有对结果进行排序!!升序基本上是设置结果将从哪里开始......从底部或从顶部开始。但我希望返回的结果集是最后 10 个结果,并且这些结果按升序排列。相反,我得到了最后 10 个结果,但在表格中,最新的结果位于顶部,集合中最旧的结果是表格中的最后一个单元格……我想要相反的结果……

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

【问题讨论】:

    标签: ios uitableview sorting parse-platform tableview


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 2019-09-23
      相关资源
      最近更新 更多