我可能没有提供足够的信息来正确地提出这个问题,但我想知道为什么当我的代码达到indexPath.row
的加载时我遇到了崩溃。
大部分代码被截断,这是我的 TableViewController.swift :
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return minions.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return minionCellAtIndexPath(indexPath)
}
func minionCellAtIndexPath(indexPath:NSIndexPath) -> MinionCell {
let minion = minions[indexPath.row]
//Set the cell to be the custom, reusable, MinionCell
let cell = tableView.dequeueReusableCellWithIdentifier(minionCellIdentifier, forIndexPath: indexPath) as! MinionCell
if let name = minion.name {
cell.nameLabel?.text = minion.name
} else {
cell.nameLabel?.text = "No data available."
}
return cell
}
据我所知,let minion = minions[indexPath.row]
发生了错误,错误发生在__Thread 1__
上,语法显示:
函数签名特化Arg [0] =拥有保证
控制台输出似乎没有显示错误可能是什么,但我在质疑这是否与我从Swift 1.2转换到Swift 2有关。
答案 0 :(得分:0)
问题应该是dequeueReusableCellWithIdentifier,确保在storyboard中正确设置。为你的单元格提供标识符名称的最佳位置是你的minioncell类。
答案 1 :(得分:0)
我最后通过改变来解决这个问题;
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return minionCellAtIndexPath(indexPath)
}
到
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
通过更改返回功能并将所有表格单元格配置添加到此功能,我发现在正确填充表格方面取得了圆满成功。