WKInterfaceTable 和 setNumberOfRows 崩溃“在展开可选值时意外发现 nil”

Mas*_*eni 5 ios swift watchkit wkinterfacetable wkinterfacecontroller

我正在使用 WatchKit,我有一个简单的界面,只有一个表,但我只用几行代码就得到了一个错误,也许我忘记了一些非常基本的东西。

我的界面:

表内的行具有标识符:

和自定义类:

控制器由以下代码实现:

import WatchKit
import Foundation

class ActiveListController: WKInterfaceController
{
    @IBOutlet weak var tableView: WKInterfaceTable!

    override func awakeWithContext(context: AnyObject?)
    {
        super.awakeWithContext(context)

        loadData()
    }

    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()
    }

    func loadData()
    {
        tableView.setNumberOfRows(10, withRowType: "ItemRow") // GET ERROR

        for index in 0...9
        {
            let row = tableView.rowControllerAtIndex(index) as! ItemRow

            row.nameLabel.setText("test")
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

显然我有单行的自定义类

import Foundation
import WatchKit

class ItemRow : NSObject
{
    @IBOutlet weak var checkImage: WKInterfaceImage!
    @IBOutlet weak var nameLabel: WKInterfaceLabel!
}
Run Code Online (Sandbox Code Playgroud)

因此,当我运行应用程序时,当我尝试设置行数时出现错误,但实际上我无法理解什么是 nil:

致命错误:在解包可选值时意外发现 nil

也许这是一个简单的错误,也许不是,但请帮助我:\

Mas*_*eni 2

终于我发现了我的错误。

我忘记将 Apple Watch 的唯一一个接口设置为初始控制器。

是的,令人难以置信和尴尬,但仅此而已。提供 Xcode 的错误不是最好的,最好是“初始控制器丢失”之类的错误。

我希望我的问题和答案有一天能帮助别人:)