【发布时间】:2014-04-05 08:28:37
【问题描述】:
在我的应用程序中,我在core data 中有一些记录,我想按升序获取最后 20 条记录,即如果有 30 条记录,我想按升序获取 11 到 30 的记录 -
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Messages" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchLimit:20];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]
initWithKey:@"messageId" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"((userId == %@) && (frndId == %@) )",uid, fid];
[fetchRequest setPredicate:predicate];
NSError *error;
NSArray* dataArray = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];
for (Messages* msg in dataArray) {
//code here
}
但它会按升序给我前 20 条记录,如果我更改为
NSSortDescriptor *sort = [[NSSortDescriptor alloc]
initWithKey:@"messageId" ascending:NO];
然后我得到了最后 20 条记录,但那是按升序排列的?任何建议都将不胜感激。
【问题讨论】:
标签: ios objective-c core-data nsfetchrequest