SWIFT:在具有多个部分的表视图中显示字典时,无法将具有标识符单元格错误的单元格出列

Posted

技术标签:

【中文标题】SWIFT:在具有多个部分的表视图中显示字典时,无法将具有标识符单元格错误的单元格出列【英文标题】:SWIFT: unable to dequeue a cell with identifier cell error when displaying a dictionary in a table view with multiple sections 【发布时间】:2015-11-13 21:01:42 【问题描述】:

我正在尝试在表格视图中为多个活动创建来宾列表。请参阅下面的故事板 -

我创建了四个部分,并将所有单元格标识符命名为“单元格”。当我运行该应用程序时,我收到以下错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法使具有标识符单元格的单元格出列 - 必须为标识符注册一个 nib 或一个类,或者在情节提要中连接一个原型单元格”

这是我的代码:

import UIKit

class RSVPTableViewController: UITableViewController 

var names = ["Event 1": ["Guest 1", "Guest 2", "Guest 3"], "Event 2": ["Guest 1", "Guest 2"]]

struct Objects 

    var sectionName : String!
    var sectionObjects : [String]!


var objectArray = [Objects]()

override func viewDidLoad() 
    super.viewDidLoad()

    for (key, value) in names 
        print("\(key) -> \(value)")
        objectArray.append(Objects(sectionName: key, sectionObjects: value))
    



override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    // #warning Incomplete implementation, return the number of sections
    return objectArray.count


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    // #warning Incomplete implementation, return the number of rows
    return objectArray[section].sectionObjects.count



override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? 

    return objectArray[section].sectionName



override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

    cell.textLabel?.text = objectArray[indexPath.section].sectionObjects[indexPath.row]

    return cell





【问题讨论】:

您将单元格设置为“静态单元格”。相反,您需要“动态原型” 太棒了!谢谢你。圣诞老人刚到镇上! 【参考方案1】:

Static Cells 用于...嗯...静态 内容。鉴于您有一个 动态 数组要用于设置单元格内容,您应该使用 Dynamic Prototypes 单元格类型。

在给原型单元(你应该只需要一个)一个标识符之后,你就可以开始了。

【讨论】:

【参考方案2】:

您应该使用动态类型,因为您实际上需要一个自定义单元格来使用您的数组。 请从您的表格视图的属性内容中选择原型。并制作您的自定义单元格。

【讨论】:

以上是关于SWIFT:在具有多个部分的表视图中显示字典时,无法将具有标识符单元格错误的单元格出列的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中使用 Core Data 在表格视图的部分中显示数据

检索在 sqlite 数据库中插入的所有行,并在包含标签的表视图单元格中显示为具有不同部分的子视图

具有多个文本字段输入视图的多个选取器视图 Swift

在 Swift 中的数组中使用多个部分和多个字典填充 TableView

在 Swift 中分别在单个列中显示多个 CollectionView Cell

Swift 1D 字典到 2D