标题总结了它。我已经尝试断开/重新连接所有IBOutlets。这是我在InterfaceController上设置WKInterfaceTable的代码:
func setupLoadingTable () {
self.myTable.setNumberOfRows(1, withRowType:"universalRowID")
for (var i = 0; i<self.myTable.numberOfRows; i++){
var row = self.myTable.rowControllerAtIndex(i) as! UniversalRowView
row.mainTitle.setText("Hello world") //THIS THROWS AN ERROR
}
}
这是我的UniversalRowView的代码,它是我的自定义行类:
import WatchKit
class UniversalRowView: NSObject {
@IBOutlet weak var mainTitle: WKInterfaceLabel!
@IBOutlet weak var subTitle: WKInterfaceLabel!
}
桌面的IBOutlets已正确连接。 Storyboard上的行设置为UniversalRowView类型,两个标签的出口都已正确连接。
该行:
row.mainTitle.setText("Hello world")
引发以下错误:“致命错误:在解包可选值时意外发现nil”
此外,当我将该代码注释掉时,我在模拟器上看不到它们出现在Storyboard上的库存WKInterfaceLabels。我觉得这也是一个错误,但我不知道该怎么做。
修改:在willActivate()中调用setupLoadingTable()
答案 0 :(得分:5)
我明白了!似乎在WKInterfaceTable和WKInterfaceLabel的视图中都有一个属性叫做#34; 38mm Installed&#34;。问题是,我在42毫米上运行模拟器,但我只检查了38毫米。
检查完两个属性后,一切都按计划进行!
这是我所指的屏幕截图:
答案 1 :(得分:2)
我遇到了同样的问题,对我而言,这是因为我为我的WKInterfaceLabel title
命名了IBOutlet,因为它也是NSObject中方法的名称。