我有一个包含200个数字(物品ID)的数组,我想使用每个物品的物品ID从核心数据中获取一些数据。 我假设唯一的方法是在循环内查询核心数据,每次执行fetchRequest并将结果添加到可变数组中。 这似乎会占用大量内存,并且循环遍历200个项可能不是获取所需数据的最佳方式。
所有这些数据的目的地都是一个表格,因此我想使用NSFetchedResultsController,但这可能要求过高。
当您有数百个项需要查询时,从核心数据检索数据的最佳方法是什么?
非常感谢提供示例代码。
以下是我的代码:
所有这些数据的目的地都是一个表格,因此我想使用NSFetchedResultsController,但这可能要求过高。
当您有数百个项需要查询时,从核心数据检索数据的最佳方法是什么?
非常感谢提供示例代码。
以下是我的代码:
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Shows" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"downloadCount" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"showId IN %@", resultsArray];
[fetchRequest setPredicate:predicate];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
}
NSPredicate *myPred = [NSPredicate predicateWithFormat:@"key1 IN %@ AND key2 IN %@", array1, array2]
。你只需将谓词拆分为布尔语句即可。 - justin