2013-01-10 60 views
2

我創建了一個CLLocationManager,並從中接收gps更新,但我懷疑mapview是否有自己的位置管理器,在這種情況下,會有兩個位置管理器對嗎?這是否會影響我的申請?如果它有自己的位置管理器MKMapView是否有自己的位置管理器?

回答

4

的MKMapView都有自己的位置manager.That就是爲什麼你可以在地圖上你爲什麼要使用單獨的位置經理直接顯示用戶的位置這樣myMapView.showsUserLocation=YES;

im MKMapView?您可以通過這種方式捕獲當前的用戶位置。

 CLLocationCoordinate2D location = [[myMapView userLocation] location].coordinate; 
     double currentLat = location.latitude; 
     double currentLong = location.longitude; 

而且我不使用的MKMapView單獨的位置經理造成任何問題思考。

+0

它沒有。直到您開始爲與位置相關的代碼編寫自動化測試時,找出您無法控制默認位置管理器足夠用於測試,將其包裝到模擬器中,然後突然注意到您的地圖視圖並不關心這個模擬器。 –

1

是的,它的確如此。只要你選擇並堅持下去,它就不會影響你的申請。雖然,我會指出有兩個(或一個空)是可怕的編碼實踐。使用下面的函數來訪問你的MKMapView的的LocationManager:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation; 
+5

但如何請求用戶使用此位置管理器的第一個位置訪問?我是否必須爲請求位置訪問創建一個? –