如何从数据库中获取一系列项目

在我的SQLite表中,如何获取项目7 000到7 999,大约有100 000个项目?

正常的读取返回到很多的工作,我宁愿一点一点地取它:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Log" inManagedObjectContext:context]; [fetchRequest setEntity:entity]; NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&err]; // here fetchedObjects holds around 100 000 rows 
  • 有没有办法用executeFetchRequest:fetchRequest指定一个范围executeFetchRequest:fetchRequest
  • 我必须使用SQLite API吗?
  • 这是个好主意吗?

使用fetchLimit上的fetchLimitfetchOffset属性来获取选定范围内的对象。

 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; fetchRequest.fetchLimit = 1000; fetchRequest.fetchOffset = 7000; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Log" inManagedObjectContext:context]; [fetchRequest setEntity:entity]; NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&err];