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 中的数组中使用多个部分和多个字典填充 TableView