Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection

Posted

技术标签:

【中文标题】Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection【英文标题】:Swift: Populating numberOfSectionsInTableView and numberOfRowsInSection dynamically 【发布时间】:2015-10-26 15:36:08 【问题描述】:

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

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

请原谅杂乱无章的代码,它需要整理。

这是我设置节数的函数。它只是返回获取的结果数量,并将其作为我的部分数量。太好了。

    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


【问题讨论】:

为什么不直接在tableView(tableView: UITableView, numberOfRowsInSection section: Int) 中返回一个? 我试过了,但我得到了以下异常:2015-10-26 16:35:01.842 app name*[9504:2278828] *** 由于未捕获的异常而终止应用程序 'NSRangeException ',原因:'** -[__NSArrayM objectAtIndex:]: index 1 超出范围 [0 .. 0]' 所以您在其他地方有问题,请发布您的表格视图控制器的代码 【参考方案1】:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    return self.fetchedResultsController.sections!.count

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

【讨论】:

这个答案不正确。应该有return self.fetchedResultsController.sections!.count

以上是关于Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的 UITableView 无法识别 UINavigationBar,填充已关闭,部分 tableview 被隐藏

根据内容动态调整tableview单元格的高度 - iOS Swift

Swift静态TableView添加额外的行

ViewController 中的 Swift TableView 在标签栏中的 Navigation VC 中:单元格不会填充列表中的数据

使用动态tableView的tableViewCell中的动态collectionViewCell执行Segue With Identifier,swift

在 TableView 中创建的 7 个单元格后添加部分 - Swift