我有两个多对多相关的实体,Customer
以及City
从它们生成的 NSManagedObject 子类。我有从Customer
到City
调用的关系cities
。里面有City
一个属性叫city
. 现在我正在尝试Customer
使用简单的实体从实体中获取所有内容fetchResultsController
:
-(NSFetchedResultsController *) fetchedResultsController {
if (_fetchedResultsController != nil)
{
return _fetchedResultsController;
}
self.managedObjectContext = [[PTDataManager sharedManager] managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Customer"
inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
结果,我可以使用谓词检索除cities
属性((null)值)之外的所有内容
@"cities.name CONTAINS[cd] %@"
在Customer
子类中我可以使用方法:
-(City *)city
{
return (CDCities *)[[PTDataFetchHelper sharedInstance] entityForName:@"City"
withServerID:self.city_server_id
inContext:[self managedObjectContext]];
}
我正在检索city
-values 很好,但这种方式会减慢 UI(在 tableView 中显示此数据)。
所以,问题:
- 如果我像这样执行基本提取,我是只检索指定实体的值,还是也检索相关实体的值?
- 如果我需要额外的谓词,我该如何修改它以从实体中获取
city
属性?City