因為要寫一個framework給主程序調(diào)用,里面封裝一個自定義地圖對象mapViewWapper衬以,這個類需要被外部調(diào)用看峻,這個類里面的實現(xiàn)其實就是調(diào)用MKMapView和CoreLocation的位置。這個類用到CLLocationManagerDelegate和MKMapViewDelegate舶治。我是用storyBoard來初始化化這個mapViewWapper的霉猛。
問題是這樣的
1.當mapViewWapper聲明為internal的時候珠闰,正常伏嗜。
2.當mapViewWapper聲明為open或者public的時候,mapViewWapper內(nèi)部的CLLocationManagerDelegate和MKMapViewDelegate對應(yīng)方法不會調(diào)用裸影。
因為需要外部調(diào)用mapViewWapper實例轩猩,第1種情況顯然不符合我的需求荡澎,所以必須聲明為open或者public摩幔。但是這樣就不會執(zhí)行兩個內(nèi)部的代理方法
原來我的兩個代理所對應(yīng)的方法沒有用public修飾,而是沒有寫任何限定詞(internal隱含修飾了)焦影,后面直接用public修飾就解決了這個問題
錯誤:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){}
正確:
public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {}
ps :如果你什么也不寫偷办,Xcode會提示你改成private修飾澄港,這時候不要執(zhí)行它的建議回梧,因為private也不行