使用CLLocationManager的正确方法(启动/停止更新用户位置)
我在UIViewController中有一个带有MKMapView
的UIView
,它只在用户点击按钮时出现。
过程如下:
-
CLLocationManager
对象在header
文件中声明为私有成员。 - 提出了一个带有
MKMapView
的UIView
(最初帧是在边界之外。移动到用户动作的视图边界内,在相同的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
了locationManager
,但GPS锁图标在statusBar
是持久的。 据我所知,连续GPS锁定会耗尽电池,我想阻止它。 我该怎么办呢?
即使它没有正式记录,最好在整个应用程序中只使用一个CLLocationManager。 将其视为单身,不要每次都初始化它,它应该正常工作。