let saveNewItem = SaveNewItem()
print(saveNewItem)
if saveNewItem != nil {
print("Contains a value!")
_ = UIApplication.shared.keyWindow!.rootViewController
self.present(saveNewItem, animated: true, completion: nil)
} else {
print("Doesn’t contain a value.")
}
我收到了臭名昭著的:致命錯誤:意外發現零,而在我的saveNewItem聲明,這是一個不同的視圖 - 控制通話展開一個可選值斯威夫特的ViewController聲明返回nil
:從主SaveNewItem一個這樣稱呼。
我很困惑,爲什麼這是返回nil當print語句聲明它在聲明中有一個值存儲。
旁路我想通過檢查(cmd + click)saveNewItem常量,它在控制檯中重現了我的打印語句,這給出了它創建對象的印象。
我也嘗試使用鏈接作爲demonstated在這個問題上的故事板視圖 - 控制: How to connect ViewController.swift to ViewController in Storyboard?
你確定它不是keyWindow具有'nil'值:
所以它現在的工作?這是你強制解開的唯一價值,所以如果不是這條線,我應該感到驚訝。 –
'SaveNewItem'是一個UIViewController,對吧?但它是否出現在Xib或Storyboard中?如果是,它可能有一些'IBOultet'。然後,通過執行'let saveNewItem = SaveNewItem()'''''''''''''''''''''''''''''''''''''''''不是從XIB或Storyboard中調用的,因此所有這些元素都沒有鏈接,並且發現你的「意外地發現了零,同時展開一個可選值」錯誤。 – Larme
@DávidPásztor是的,我確定它不是keyWindow,它是行: self.present(saveNewItem,animated:true,completion:nil) 這會導致錯誤。 –