[英]Swift : fatal error: unexpectedly found nil while unwrapping an Optional value
[英]Swift: App crashing with fatal error: unexpectedly found nil while unwrapping an Optional value?
我在堆棧上的其他地方查看了相同的錯誤(嚴重錯誤:在解開可選值時意外發現nil?),但我不了解在我的情況下什么可能等於nil,因為發生了太多事情崩潰線。
實際的異常是“線程1:EXC_BAD_INSTRUCTION(代碼= EXC_1386_INVOP,子代碼= 0x0”,它在下面指示的行上崩潰。我不確定布爾, plays
或spot
是否等於nil。也會發生此錯誤在其他3行上,當我單擊線程1下的條時。
這些后續行都涉及isOccupied
函數,而后者又涉及該行。 我以為我可以解決第一個錯誤,其他錯誤也可以解決。
引入播放的代碼塊:
var plays = Dictionary<Int,Int>()
var done = false
var aiDeciding = false
錯誤在哪里:
func isOccupied(spot:Int)->(Bool) {
return Bool(plays[spot]!) //ERROR LINE
}
更改為:
func isOccupied(spot:Int)->(Bool) {
if plays != nil {
return Bool(plays[spot]!)
}
else {
return false
}
}
無論鍵類型如何, Dictionary
的下標函數都將返回Optional
(在本例中為Int?
)。 這是因為您可能正在請求一個不存在的密鑰。 從文檔 :
因為可以請求不存在任何值的鍵,所以字典的下標返回字典值類型的可選值。
您將需要執行以下操作:
func isOccupied(spot: Int) -> Bool {
if let doesPlay = plays[spot] {
return Bool(doesPlay)
} else {
return false // assuming that's a sane default
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.