当我实施任何建议修复时,应用程序在运行时崩溃。当我在没有推荐修复的情况下编译/运行应用程序时,应用程序按预期运行。
原始方法如下:
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
//this let statement is my original line of code prior to swift 3 conversion and it worked fine
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier:"Cell")
//i've tried using the statement below instead but still getting same error
//let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = userSummaryArray[(indexPath as NSIndexPath).row] as String
cell.textLabel!.font = UIFont(name:"Helvetica Neue", size:17)
cell.accessoryType = .disclosureIndicator
userSummaryTable.rowHeight = 25
return cell
}
在Xcode8中转换为swift 3之后我现在收到有关此方法的警告:
Instance method 'tableView(_:cellForIndexPath:)' nearly matches optional requirement 'tableView(_:heightForRowAt:)' of protocol 'UITableViewDelegate'
建议有两种选择"修复"警告:
Make 'tableView(_:cellForIndexPath:)' private to silence this warning
OR
Add '@nonobjc' to silence this warning
这两个"修复"崩溃应用程序。原始代码在新的swift中运行良好,并且在旧版本的swift中运行良好。这些建议是什么?
非常感谢任何帮助。
答案 0 :(得分:6)
制作
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
而不是
{{1}}
Xcode正试图帮助你,但却无法识别
答案 1 :(得分:1)
我有同样的问题。连同Lu_s的答案,请确保将UITableViewDataSource添加到类中。
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { }