Iphone 具有一对多关系的NSFetchedResultsController
这是我在处理核心数据时无法理解的。我想使用NSFetchedResultsControllerDelegate,到目前为止我看到的常用代码很容易理解,但总是基于一个实体模型。因此,如果希望在表中显示所有“事件”,则需要对事件实体执行一个获取请求,然后在那里设置为继续 问题是,我的模型是:Iphone 具有一对多关系的NSFetchedResultsController,iphone,objective-c,core-data,Iphone,Objective C,Core Data,这是我在处理核心数据时无法理解的。我想使用NSFetchedResultsControllerDelegate,到目前为止我看到的常用代码很容易理解,但总是基于一个实体模型。因此,如果希望在表中显示所有“事件”,则需要对事件实体执行一个获取请求,然后在那里设置为继续 问题是,我的模型是: City (one-to-one) Company (one-to-many) Employees 我的表格需要显示员工,但取回必须基于城市,以便取回公司和员工,对吗?我对此完全不知所措,我就是不知道该怎么取
City (one-to-one) Company (one-to-many) Employees
我的表格需要显示员工,但取回必须基于城市,以便取回公司和员工,对吗?我对此完全不知所措,我就是不知道该怎么取
因为如果我获取City或Company并将员工放入NSMutableSet,我是否会丢失所有authomatic UITableViewController同步?例如,如果我这样做,我将无法做类似的事情
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo =
[[_fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
-(NSInteger)表视图:(UITableView*)表视图
节中的行数:(NSInteger)节{
id sectionInfo=
[[u fetchedResultsController节]对象索引:节];
返回[sectionInfo numberOfObjects];
}
我认为您应该使用City属性或Company Name属性上的过滤器获取“Company”托管对象,或者同时获取两者。如果已在公司和员工之间设置了一对多关系,则公司管理的对象应具有NSSet属性,该属性包含列表所需的所有员工对象。数据模型应具有相互关系,以便在获取任何特定对象时,您可以立即访问所有相关对象
在您的情况下,具有互惠关系的数据模型看起来像:
City{
company<-->Company.city
}
Company{
city<-->City.company
employees<-->>Employee.company
}
Employee{
company<<-->Company.employees
}
城市{
公司城市
}
公司{
城市公司
员工>员工公司
}
雇员{
结伴迟做总比不做强
使用谓词
predicate = [NSPredicate predicateWithFormat:@"(ProvinceToCounty == %@)", selectedObject];
从这个链接开始
如果您计划创建一个泛型类并使其适用于不同的父子实体,请确保删除NSFetchedResultsController的缓存名称。这是我迄今为止所做的,但这样会错过所有与UITableViewController的即时同步(让它侦听NSMutableSet更改,而不仅仅是fetchrequest)。例如,我将无法在tableView numberOfRowsInSection中使用它:我使用NSFetchedResultsController来管理我的UITableViewController。是的,我知道。我不知道的是在这种情况下,当实体位于另一个实体内时如何使用它。我认为您的实体描述应该是“Employees”您的谓词应该遍历关系以正确过滤。因此,NSPredicate*searchType=[NSPredicate predicateWithFormat:@“employee.company.city=%d”,cityId];小心nsfectDredResultController+部分我对它记忆犹新,它被严重窃听(在apple sdk中)在iOS3.2之前。在3.2之后,我认为即使有所改进,它仍然存在一些问题。我没有尝试使用最新版本。我现在正在尽可能避免NSFetchedResultController。。。