fetchedResultsController

fetchedResultsController

我正在将fetchedResultsController与sectionNameKeyPath一起使用,如下所示。

让fetchedResultsController = NSFetchedResultsController(fetchRequest:fetchRequest,managedObjectContext:self.managedObjectContext,sectionNameKeyPath:“relName.APropertyName”,cacheName:nil)

段名称键是与父表及其在父表中的属性名称之一的关系。

我通过覆盖以下内容获得了自定义部分标题
func tableView(tableView:UITableView,viewForHeaderInSection部分:Int)-> UIView?

在此标头中,我想访问父实体及其其他一些属性(不仅限于sectionNameKeyPath中提到的属性)

我尚未使用属性“APropertyName”对父实体实施任何唯一性。

当我为该部分编写自定义标头时,我想查询父实体。我该如何实现?

谢谢

最佳答案

在声明fetchedResultsController时,我使用了与父母和孩子的一对多关系,并使用“objectID”作为sectionNameKeyPath。

下面是fetchedResultsController的减速度。

    let fetchRequest = NSFetchRequest(entityName: "Child")
    let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: "relParent.objectID", cacheName: nil)

提取完成并准备在我使用的单元格上显示标头信息
fetchedResultsController.sections?[section] .objects属性以遍历到父级。以下是呈现自定义标头单元格的代码。
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let  headerCell = tableView.dequeueReusableCellWithIdentifier("headerCell") as? ChildEntityHeaderCell
    if let cell = headerCell {

        if  let sectionData = fetchedResultsController.sections?[section] {
            if sectionData.objects != nil && sectionData.objects!.count > 0 {
               if  let child = sectionData.objects?[0] as? ChildEntity , parent = child.relChild // child entity has inverse relationship with the parent [ two way relationship]
               {
                if let name = parent.PropertyA {
                  cell.LabelField.text = name

                }


                }
            }

        }

    }
    return headerCell
}

关于ios - FetchedResultsController和自定义 header 部分的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35362152/

10-11 11:02