2016-08-17 99 views
0

我試圖找出錯誤:致命錯誤:意外發現零而展開的可選值自定義init方法

class MainViewController: UIViewController { 
    var mapView :AGSMapView? 
    mapViewHelper = GeoneMapViewHepler.init(mapView: mapView!, mapViewDelegate: self) 
} 

class GeoneMapViewHepler: NSObject { 

    var mapViewModule :GeoneMapViewModel? 
    var mapView :AGSMapView? 
    var mapViewDelegate :AnyObject? 

init(mapView mp: AGSMapView, mapViewDelegate md: AnyObject) { 
    mapView = mp 
    mapViewDelegate = md 
    super.init() 
    } 

} 

我花了一天半,但我找不到密鑰...

感謝您的解答!

+0

這個錯誤是顯而易見的,因爲可選的mapView var是零,並且您將值賦給init函數內的所需變量。 –

+0

你應該看看這個[答案](http://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly-found-nil-while-unwrapping-an-optional-valu)這可能會有所幫助......並且問題肯定會由您訪問nil對象。 – vaibhav

+0

謝謝,它已經解決了。^ _ ^ – Mrdten

回答

0

MainViewController的初始化代碼viewDidLoad。只有在視圖加載後才設置mapView

func viewDidLoad() { 
    super.viewDidLoad() 

    mapViewHelper = GeoneMapViewHepler.init(mapView: mapView!, mapViewDelegate: self) 

    ... 
}