我的应用只能获取用户当前位置一次。
使用位置管理器和委托成功完成。一旦我第一次获得该位置,我的代表就会将经理调到stopUpdatingLocation
。
由于我正在使用ARC,并且在我的应用程序运行的所有时间内都保留了此类的实例,因此我的CLLocationManager实例将保留在内存中。
我知道GPS服务非常耗电,但它实际上不消耗更多事件会产生相同的效果吗?它继续工作吗?
我想知道我是否应该添加一些逻辑来释放它。
答案 0 :(得分:0)
试试以下...
-(void)updateLoc
{
if (self.locationManager != nil)
{
[self.locationManager stopUpdatingLocation];
self.locationManager.delegate = nil;
self.locationManager = nil;
}
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
self.locationManager.headingFilter = 1;
self.locationManager.distanceFilter=10.0;
[self.locationManager startUpdatingLocation];
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
[self.locationManager stopUpdatingLocation];
self.locationManager = nil;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{//Use if you are supporting iOS 5
[self.locationManager stopUpdatingLocation];
self.locationManager = nil;
}