【问题标题】:WKInterfaceTable & setNumberOfRows get crash "unexpectedly found nil while unwrapping an Optional value"WKInterfaceTable & setNumberOfRows 崩溃“在展开可选值时意外发现 nil”
【发布时间】:2015-06-12 09:34:50
【问题描述】:

我正在使用 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")
        }
    }

}

显然我有我的单行自定义类

import Foundation
import WatchKit

class ItemRow : NSObject
{
    @IBOutlet weak var checkImage: WKInterfaceImage!
    @IBOutlet weak var nameLabel: WKInterfaceLabel!
}

因此,当我运行应用程序时,当我尝试设置行数时出现错误,但我真的不明白什么是 nil:

致命错误:在展开可选值时意外发现 nil

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

【问题讨论】:

    标签: ios swift watchkit wkinterfacetable wkinterfacecontroller


    【解决方案1】:

    代码中的 for 循环来自 1...10,它应该是 0...9,因为行是基于 0 的

    【讨论】:

    • 感谢您的提示,但不是导致崩溃,真正的问题是上面的行
    • 嗯,这确实很奇怪。另一个提示是检查设置是否正确。例如:在我指定自定义类的情况下,模块字段自动填充为wktest_WatchKit_Extension(我将我的项目命名为 wktest),我在屏幕截图中看到并非如此。如果您可以在某个地方发布完整的项目,我可以看看。干杯,祝你好运。
    • 不,谢谢,现在我已经开始赏金并修复了 for :)
    • 我自己解决了,但我决定给唯一一个试图帮助我的人 50 分 ;)
    【解决方案2】:

    我终于发现了我的错误。

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

    是的,令人难以置信和尴尬,但就是这样。提供 Xcode 的错误不是最好的,最好是“缺少初始控制器”。

    我希望我的问题和答案有一天可以帮助某人:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 2016-10-18
      • 2017-04-09
      相关资源
      最近更新 更多