0
如何从RLMResults得到最后/前n个结果?领域得到最后n个结果
我认为你可以转换成NSArray,而不是- (NSArray *)subarrayWithRange:(NSRange)range;
,但如果RLMResults非常重要,这种方法很糟糕。你
也可以这样做:
self.arrayOfSubscriptedResults = [NSMutableArray new];
RLMResults *results = [[ModelRO objectsWhere:@"smth == 21"] sortedResultsUsingProperty:@"property" ascending:NO];
[self.arrayOfSubscriptedResults addObject: [results lastObject]];
[self.arrayOfSubscriptedResults addObject: [results objectAtIndex:(results.count - 1)]];
[self.arrayOfSubscriptedResults addObject: [results objectAtIndex:(results.count - 2)]];
但是这就像一个拐杖。
也许有了谓语,但是弄不清楚怎么样?
编辑:
最终的解决方案:
RLMResults *results = getRealmResultsHere;
int count = results.count;
int numberOfFirstObjects = 3;
if (count > 0)
{
self.mutableArray = [NSMutableArray arrayWithCapacity: numberOfFirstObjects];
for (NSUInteger index = 0; (self.mutableArray.count < numberOfFirstObjects) && (count > index); index++)
{
[self.mutableArray addObject:results[index]];
}
}
我没有这样的,差不多。但在你的例子中 - 如果RLMResults * allDogs'内部少于3个对象呢? –
这取决于你的情况。你想断言吗?或者“最多”提供请求项目的数量。完全取决于你 – jpsim