2016-08-16 52 views
1
var mapViewDelegate: AnyObject? 

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

mapView?.touchDelegate = mapViewDelegate 
mapView?.layerDelegate = mapViewDelegate 

則:代表錯誤

無法指定類型的值「AnyObject?鍵入'AGSMapViewTouchDelegate!'

我能做些什麼呢,謝謝所有的答案

+0

也許我失去了一些東西,但有你不只是讓你的'mapViewDelegate'是'AGSMapViewTouchDelegate'代替AnyObject'的'理由嗎?如果是這樣,那麼也許你可以在使用它之前嘗試將它變成一個'AGSMapViewTouchDelegate'。像'如果讓agsMapViewTouchDelegate = mapViewDelegate爲? AGSMapViewTouchDelegate {mapView?.touchDelegate = agsMapViewTouchDelegate mapView?.layerDelegate = agsMapViewTouchDelegate}'(對不起格式化) – pbodsk

+0

它的工作原理,謝謝! – Mrdten

+0

做了什麼? 「如果讓......作爲......」的一部分?太好了,很高興我們解決了:) – pbodsk

回答

0
var mapViewDelegate: AnyObject? 

它不應該是這樣的。

它應該是協議的歸屬類型。不是Anyobject。

就像我有一個名爲AllowNotificationDelegate的協議。 所以我委託變量定義爲

weak var allowNotificationDelegate: AllowNotificationDelegate? 

型AllowNotificationDelegate的。

,所以你應該寫

weak var mapViewDelegate: AGSMapViewTouchDelegate? 
+0

它已經解決了,謝謝你的幫忙!(∩_∩) – Mrdten

+0

歡迎光臨。 很高興幫助你:) – Sofeda