有關堆棧溢出與此錯誤相關的很多問題。我已閱讀how Optionals work和error in particular上的一些優秀帖子。但是,我還沒有找到任何有關找出哪些值設置爲零並導致錯誤的最佳方法的信息。如何調試'致命錯誤:意外地發現零,同時展開一個可選值'
是否有任何良好的調試技術來找出哪些可選導致此錯誤?
有關堆棧溢出與此錯誤相關的很多問題。我已閱讀how Optionals work和error in particular上的一些優秀帖子。但是,我還沒有找到任何有關找出哪些值設置爲零並導致錯誤的最佳方法的信息。如何調試'致命錯誤:意外地發現零,同時展開一個可選值'
是否有任何良好的調試技術來找出哪些可選導致此錯誤?
You Xcode不會在不正確的代碼行崩潰?
這不回答這個問題,但重要的是要注意的:
When you are not sure about an optional variable, you have to verify if it contains value or not, by using a pattern like this:
var myOptional : String?
if let aString = myOptional {
//do your work with aString.
}
基本上可選的值是什麼「?」當你放置?在數據類型是可選的之後,如果解包並且nil出現,那麼它沒有錯誤,但是它放置了「!」數據類型後感歎號那麼如果它解開變量和nil出現再有就是崩潰或錯誤,以便經常使用可選的
var myVariable : DataType ? = DataType()
or
var myVariable : DataType ? = nil
or
var myVariable : DataType ? = value
斯威夫特可選的是,可以容納一個值或一個變量沒有值。可選項是通過附加一個?該類型:
var myOptionalString:String? = "Hello"
有些地方自選是有用的:
這裏大量資源的至少一半的答案(才肯其他受訪者請先閱讀該問題!):使用模擬器代替實際的iOS設備。
調試器似乎非常擅長指向可能導致麻煩的惡意程序選項,除非您像我一樣,選擇直接在iOS設備上直接運行代碼。在後一種情況下,調試器使我處於某些彙編代碼的中間,沒有明顯的堆棧跟蹤。切換回模擬器會給出確切的錯誤代碼行。
謝謝,那太好了。很高興知道! – 2016-05-02 16:47:01
這是我需要知道的。我得到*問題是什麼,但是我需要弄清楚問題出在哪裏才能解決問題,而且我一直在盲目猜測的斷點都沒有被擊中。 – 2016-12-30 00:48:18
爲我工作。有時Xcode是這樣的屁股......這是有技術原因嗎? – CW0007007 2017-09-19 15:14:48
那不是...... /:| – Radu 2015-09-17 19:53:20