我正在设置NSFetchedResultsController,在请求上设置批量大小并执行提取。
根据性能,内存使用情况,日志记录(访问实体的属性)和SQL日志记录(不提及SQL查询中的限制),很明显fetchBatchSize被忽略,并且我的所有对象都是取出的)。
可能导致该设置被忽略的原因是什么?
NSFetchRequest *request = [NSFetchRequest new];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:context];
[request setEntity:entity];
[request setSortDescriptors:[[NSSortDescriptor alloc] initWithKey:@"dateCreated" ascending:NO]];
[request setFetchBatchSize:50];
self.fetchController = [[NSFetchedResultsController alloc]
initWithFetchRequest:request
managedObjectContext:context
sectionNameKeyPath:nil
cacheName:nil];
NSError *error;
[self.fetchController performFetch:&error];
请注意,如果我在获取之前设置断点,则确实设置了批量大小限制为50的请求;但是SQL日志记录没有提到它。