2017-08-07 60 views
-1

虽然看了很多帖子,却找不到解决我的情况。如何用Relationship Swift显示UITableView 3

有实体天和有实体任务。每一天可以有0个或多个任务。我需要在UITableView中显示特定日期的任务列表。

如何通过对关系获取行(任务)的数量:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    } 

,然后如何为单元格的格式:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)-> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "TodayCell", for: indexPath as IndexPath) as! TodayTableViewCell 

     let task = //how to get task? 

     cell.taskDescription?.text = task.descritpion    

     return cell 
    } 
+0

你不取的行数,你将需要创建数据源与您的过滤结果并将其计数传递给行数 –

+0

您是如何声明任务和天变量的? –

+0

你应该有包含任务对象的数组,然后你可以这样选择一个任务。让task = tasks [indexPath.row],行数应该返回tasks.count –

回答

0
  • 创建一个自定义结构

    struct Schedule { 
        let date : Date 
        var tasks : [Task] 
    } 
    
  • 创建数据源阵列

    var schedules = [Schedule]() 
    
  • 获取白天排序Day实体(到一个数组days

  • 地图的项目,以自定义结构,如果有一个任务或多个(简单的代码,最有可能的你的属性是不同的)

    schedules.removeAll() 
    for day in days { 
        if !day.tasks.isEmpty { 
         schedules.append(Schedule(date: day.date, tasks:day.tasks.allObjects as! [Task])) 
        } 
    } 
    tableView.reloadData() 
    
  • numberOfSections回报schedules.count

  • numberOfRows...回报schedules[section].tasks.count
  • titleForHeaderInSection回报schedules[section].date
  • 字符串描述在cellForRow...得到一个任务

    let day = schedules[indexPath.section] 
    let task = day.tasks[indexPath.row] 
    
相关问题