2017-01-03 53 views
1

我派我的工作程序進行到試飛,爲了得到它正確編譯我改變了以下幾件事:斯威夫特地圖套件意外發現零而展開的可選值

  • 啓用全屏
  • 關閉左,右方向

我發現我的試飛副本有一個bug,所以我去測試它的模擬器,我現在用以下錯誤:

fatal error: unexpectedly found nil while unwrapping an Optional value 

凸顯了行:

MapView.setRegion(MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(-39.0556253, 174.0752278), distanceSpan,distanceSpan), animated: true) 

這工作完全正常我編譯之前和testflight運行它。試飛可能導致這種情況發生了什麼?無論如何在我歸檔之前還原爲代碼?我有以前的檔案可以從那些代碼運行代碼嗎?

感謝您的幫助

+1

檢查「MapView」是否爲零。如果是,找出原因。 – rmaddy

+0

我該如何檢查......編譯會如何導致這個問題呢?這就是我不明白我沒有改變任何代碼。 –

+0

您可以使用調試器進行檢查。 – rmaddy

回答

2

破碎出口連接往往會造成「意外發現零而展開可選」錯誤的斯威夫特因爲默認情況下網點都設置爲強制展開自選。如果它們爲零,則對插座的每個代碼引用都將崩潰。

您發佈的代碼顯示它定義爲插座,但不是它已連接。

打開故事板中的場景。選擇連接檢查器。選擇地圖。看看它是否顯示爲連接到視圖控制器中的插座。可能不會。接下來,在助理編輯器中選擇視圖控制器的源文件,找到插座,然後從代碼中控制 - 從插座左側的圓圈拖到地圖視圖上以連接插座。

+1

解決它謝謝!我想我一定是改變了地圖視圖,忘了重新連接。謝謝 –

相關問題