【发布时间】:2013-07-15 09:50:48
【问题描述】:
我有两个多对多相关实体,Customer 和 City 以及从它们生成的 NSManagedObject 子类。我从Customer 到City 的关系称为cities。在City 中有一个名为city 的属性。现在我正在尝试使用简单的fetchResultsController 从实体Customer 获取所有内容:
-(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属性?
【问题讨论】:
标签: objective-c core-data entity-relationship nsfetchedresultscontroller nsfetchrequest