Swift:动态填充numberOfSectionsInTableView和numberOfRowsInSection

时间:2015-10-26 15:36:09

标签: ios swift uitableview cocoa-touch

我正在尝试在Swift中实现一个iOS表视图,它执行以下操作:

  • 通过计算当前存储在核心数据实体中的对象数量来生成多个部分
  • 每个部分创建一个行,每行代表/保存我的核心数据实体中的对象

请原谅冗长的代码,它需要整理。

这是我设置部分数量的功能。它只返回获取的结果数,并将其作为我的节数提供。大。

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    let count = self.fetchedResultsController.fetchedObjects?.count
    if (count != 0){
    return count!        }
    else {
    return 0
    }
}

但是我不知道如何调整项目文件中包含的基本numberOfRowsInSection方法。它会在NSRangeException上因数组超出0而跳闸。我猜这是[section]数组。

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

    let sectionInfo = self.fetchedResultsController.sections![section]
        return sectionInfo.numberOfObjects

}

简单地返回1,对于每个部分的一行,这是我想要的,不起作用,落在上面的相同错误。

某种程序员可以指出我正确的方向。

谢谢!

编辑:每当我返回任何大于1的numberOfSectionsInTableView时,就会发生错误。

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

   let sectionInfo = self.fetchedResultsController.sections![section]
   return sectionInfo.numberOfObjects

}

1 个答案:

答案 0 :(得分:2)

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return self.fetchedResultsController.sections!.count
}

这里返回的是节数,而不是行数。