Название подводит итог. Я пробовал отключать/повторно подключать все 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 для таблицы подключены правильно. Для строки в раскадровке задан тип UniversalRowView, и выходы для обеих меток правильно подключены.
Линия:
row.mainTitle.setText("Hello world")
выдает следующую ошибку: "фатальная ошибка: неожиданно найдено nil при развертывании необязательного значения"
Кроме того, когда я комментирую этот код, я не вижу стандартные WKInterfaceLabels на симуляторе, как они появляются на раскадровке. Я чувствую, что это тоже ошибка, но я не знаю, что с этим делать.
Изменить: вызов setupLoadingTable() в willActivate()