我可以显示几个表行,但当我点击其中一行时,应用程序崩溃在tableView.setNumberOfRows(:)
我没有任何关于发生了什么的线索。欢迎任何建议或提示。提前致谢。
我不明白为什么会发生这种情况,因为在初始设置时,此代码运行时没有错误。只有当我点击其中一个表行时才会出现此错误。
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
@IBOutlet var tableView: WKInterfaceTable!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Configure interface objects here.
loadTableData()
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
private func loadTableData() {
tableView.setNumberOfRows(Categories.NotLocalizedCategories.count, withRowType: "RowController")
for (index, category) in Categories.LocalizedCategories.enumerated() {
if let rowController = tableView.rowController(at: index) as? RowController {
rowController.rowLabel.setText(category)
}
}
}
override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) {
pushController(withName: "DetailInterfaceController", context: Categories.LocalizedCategories[rowIndex])
}
}
显然,tableView
或背景Categories.LocalizedCategories[rowIndex]
都是零。在传递上下文之前使用if let
构造或guard
语句。