使用 query.limit 对 Parse 的结果进行排序无法按预期工作
Posted
技术标签:
【中文标题】使用 query.limit 对 Parse 的结果进行排序无法按预期工作【英文标题】:Sorting results from Parse is not working as expected with query.limit 【发布时间】:2014-07-08 02:48:58 【问题描述】:例如,我将查询的限制设置为 10,然后我想获取数据集中的最后 10 个结果并按时间升序排序! 好的,我知道我可以添加:
[messages addDescendingOrder:@"createdAt"];
//OR
[messages addAscendingOrder:@"createdAt"];
但是这样做是获取前 10 条记录或后 10 条记录......它本身并没有对结果进行排序!!升序基本上是设置结果将从哪里开始......从底部或从顶部开始。但我希望返回的结果集是最后 10 个结果,并且这些结果按升序排列。相反,我得到了最后 10 个结果,但在表格中,最新的结果位于顶部,集合中最旧的结果是表格中的最后一个单元格……我想要相反的结果……
有没有办法让 Parse 处理这个问题,而不是在设备本身上进行逻辑处理? 非常感谢任何帮助。
【问题讨论】:
【参考方案1】:好的,对于遇到类似问题的其他人,解决方案是将您从 Parse 查询中获得的结果数组反转。完毕 :) 快乐编码!
我使用了我在另一个关于在 *** 上反转数组的问题中找到的代码,但这里又是代码:
@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
【讨论】:
以上是关于使用 query.limit 对 Parse 的结果进行排序无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
Google Maps API OVER QUERY LIMIT 每秒限制