Xcode CLLocationManager DidUpdateLocation与MKMapView的对比';s didUpdateUserLocation

Xcode CLLocationManager DidUpdateLocation与MKMapView的对比';s didUpdateUserLocation,xcode,ios4,mkmapview,cllocationmanager,Xcode,Ios4,Mkmapview,Cllocationmanager,我从CLLocationManager和MKMapView中获取用户的位置。我应该使用哪一个设置地图的中心坐标 此外,模拟器中的两种方法的答案也不同。CLLocationManager返回正确的位置,而MKMapview的didUpdateUserLocation返回位于cupertino的Apple office。我使用CLLocationManager,正是因为它以1个无限循环Dr为中心。它还为您提供了更多选项,您可以使用StartMonitoring重大更改。。。等等。在使用地图时,我会使

我从CLLocationManager和MKMapView中获取用户的位置。我应该使用哪一个设置地图的中心坐标


此外,模拟器中的两种方法的答案也不同。CLLocationManager返回正确的位置,而MKMapview的didUpdateUserLocation返回位于cupertino的Apple office。

我使用
CLLocationManager
,正是因为它以1个无限循环Dr为中心。它还为您提供了更多选项,您可以使用StartMonitoring重大更改。。。等等。

在使用地图时,我会使用MapKit位置

map例程用于处理map时使用;而CoreLocation例程的用途与地图无关。MapKit将报告影响地图的位置更改(如果showUserLocation为YES或跟踪模式为MKUserTrackingModeFollowWithHeading,则调用didUpdateUserLocation)。CoreLocation的服务能够在应用程序处于后台时报告更改

底线是你应该使用适合你所做事情的选项。在我的应用程序中,我使用两种服务:地图显示时使用MapKit,地图不显示或应用程序背景时使用CoreLocation


有趣的是,自从iOS5发布以来,模拟器支持许多位置选项;在模拟器应用程序的调试菜单上,我还介绍了其中的一些选项。

如果您正在处理中国大陆的位置,我建议使用MapKit位置。它为您处理GPS偏移量的计算(出于国家安全原因,法律增加了GPS偏移量)。有关此问题的更多信息,请访问

,但蓝点保持在1无限循环。。。我无法让它移动到CLLocationManager认为位置在的地方…它不会在设备上。这是一个仅限于模拟器的问题,您可以制作一个假点进行调试,并将其设置为与地图中心相同的点,其行为将不完全相同,但非常接近。谢谢。所以,底线是,如果我使用CLLocationManager,我应该很乐意在真正的设备上,蓝点将与didUpdateToLocation中接收到的位置一致,对吗?是的,地图视图处理蓝点,而你没有任何方法控制它,在模拟器上它总是停留在cupertino中。从iOS 5开始,模拟器支持许多位置选项,包括更改位置。有关详细信息,请参阅。