点击WatchKit表格行时崩溃

问题描述 投票:0回答:1

我可以显示几个表行,但当我点击其中一行时,应用程序崩溃在tableView.setNumberOfRows(:)我没有任何关于发生了什么的线索。欢迎任何建议或提示。提前致谢。

The error我不明白为什么会发生这种情况,因为在初始设置时,此代码运行时没有错误。只有当我点击其中一个表行时才会出现此错误。

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])
 }
}
swift watchkit
1个回答
0
投票

显然,tableView或背景Categories.LocalizedCategories[rowIndex]都是零。在传递上下文之前使用if let构造或guard语句。

© www.soinside.com 2019 - 2024. All rights reserved.