这是我无法理解使用Core Data的原因。我想使用NSFetchedResultsControllerDelegate,我到目前为止看到的常用代码很容易理解,但总是基于一个实体模型。所以你想在你的表中显示所有“事件”,你在Event实体上做一个获取请求,然后你就可以了。
问题是,我的模型是:
City (one-to-one) Company (one-to-many) Employees
我的桌子需要向员工展示,但是获取必须以城市为基础,以便检索公司,然后是员工,对吧?我完全迷失了,我只是不知道怎么做这个。
因为如果我获取City或Company并且我将Employees放在NSMutableSet中,那么我不会松开所有authomatic UITableViewController同步吗?例如,如果我这样做,我将无法做像
这样的事情- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo =
[[_fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
答案 0 :(得分:4)
迟到总比没有好。
使用谓词
predicate = [NSPredicate predicateWithFormat:@"(ProvinceToCounty == %@)", selectedObject];
从此链接http://blog.sallarp.com/iphone-core-data-uitableview-drill-down/
开始如果您打算创建一个泛型类并使其适用于不同的父子实体,请确保删除NSFetchedResultsController的缓存名称。
答案 1 :(得分:2)
您的数据模型应具有互惠关系,以便在获取任何特定对象时,您可以立即访问所有相关对象。
在您的情况下,具有互惠关系的数据模型看起来像:
City{
company<-->Company.city
}
Company{
city<-->City.company
employees<-->>Employee.company
}
Employee{
company<<-->Company.employees
}
因此,如果您有Employee
个对象,则会找到公司self.company
和self.company.city
城市(大多数情况下,实际的self
是不必要的,我将其用于说明目的。)如果您有Company
个对象,则可以找到self.employees
中的员工和self.city
中的城市。如果您有City
个对象,则会找到self.company.employees
的所有员工。
关系是实际创建核心数据核心的对象图。您可以使用提取在图形中查找一组对象,然后从这些对象“向外”关系以查找所有相关数据。正是相互关系使得双向关系能够来回走动。
答案 2 :(得分:0)
我认为您应该使用“城市”属性或“公司名称”属性或两者的过滤器来获取“公司”管理对象。如果您在公司和员工之间设置了一对多关系,那么您的公司托管对象应该具有一个NSSet属性,该属性包含列表所需的所有员工对象。