如何从数据库中获取一系列项目
在我的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
上的fetchLimit
和fetchOffset
属性来获取选定范围内的对象。
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];