我有一个可以调用以获取用户位置的应用程序:
-(void)getLocation{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
}
//SET USER LOCATION
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
self.userLocation = [locations lastObject];
NSLog(@"location in IntroVC %f, %f", self.userLocation.coordinate.latitude, self.userLocation.coordinate.longitude);
}
我的问题是,因为 NSLog 不断地无限地吐出新位置,所以我什么时候应该停止调用该位置?好吧,我想这确实取决于我的应用程序的功能,但这不会导致电池耗尽吗?如果是这样,我真的应该研究停止更新的最佳方法。
位置管理器的距离过滤器设置为 kCLDistanceFilterNone。这会导致 didUpdateLocations 方法被无限次调用。
locationManager.distanceFilter = kCLDistanceFilterNone;
将此行更改为
locationManager.distanceFilter = 10;
然后再试一次。根据需要更改该值。
所以现在 didUpdateLocation 不会被无限次调用。 :)
希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)