使用CLLocationManager的正确方法(启动/停止更新用户位置)

时间:2013-09-20 13:27:32

标签: iphone ios mkmapview cllocationmanager

我在UIViewController中有UIView MKMapView,只有在用户点击按钮时才会显示。

流程如下:

  • CLLocationManager对象在header文件中声明为私有成员。
  • 显示带有UIView的{​​{1}}(最初框架位于边界之外。移动到用户操作的视图边界内,同时在MKMapView内)。
  • 初始化:

    viewController
  • 使用locationManager = [[CLLocationManager alloc] init]; locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 100 m [locationManager startUpdatingLocation]; CLLocation *location = [locationManager location]; CLLocationCoordinate2D coordinate = [location coordinate]; MKCoordinateSpan span = MKCoordinateSpanMake(0.04, 0.04); MKCoordinateRegion region = MKCoordinateRegionMake(coordinate, span); mapView.showsUserLocation = YES; [mapView setRegion:region animated:YES];

  • 获取附近的位置信息

现在,我希望在从可见边界移除Foursquare API时停止位置锁定。 我用view试了一下。我还stopUdatingUserLocation released,但GPS锁定图标在locationManager中是持久的。据我所知,连续GPS锁定会耗尽电池电量,我想阻止它。我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

即使没有正式记录,在整个应用程序中只使用一个CLLocationManager会更好。将其视为单身,不要每次都初始化它,它应该正常工作。