![](/img/trans.png)
[英]WKInterfaceTable & setNumberOfRows get crash “unexpectedly found nil while unwrapping an Optional value”
[英]WKInterfaceLabel in custom WKInterfaceTable row unwrapping to nil
標題總結了一下。 我嘗試斷開/重新連接所有IBOutlets。 這是我設置WKInterfaceTable的InterfaceController上的代碼:
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,因為它們出現在情節提要中。 我覺得這也是一個錯誤,但我不知道該怎么做。
編輯 :在willActivate()中調用setupLoadingTable()
我想到了! WKInterfaceTable和WKInterfaceLabel的視圖中似乎都存在一個名為“ 38mm Installed”的屬性。 問題是,我在42mm上運行模擬器, 但僅檢查了38mm 。
一旦檢查了兩個屬性,一切便按計划進行!
這是我所指的屏幕截圖:
我遇到了同樣的問題,對我來說,是因為我為WKInterfaceLabel title
命名了IBOutlet,這也證明了NSObject中方法的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.