【问题标题】:FetchedResultsController and data for custom header sectionFetchedResultsController 和自定义标题部分的数据
【发布时间】:2016-05-23 13:49:43
【问题描述】:

我正在使用带有 sectionNameKeyPath 的 fetchedResultsController,如下所示。

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

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

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

在此标头中,我想访问父实体及其少数其他属性(不仅仅是 sectionNameKeyPath 中提到的属性)

我没有对具有属性“APropertyName”的父实体强制执行任何唯一性。

我想在为该部分编写自定义标题时查询父实体。我如何做到这一点?

谢谢

【问题讨论】:

    标签: ios uitableview swift2


    【解决方案1】:

    我使用了与父子关系的一对多关系,并在声明 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多