mar*_*oko 3 objective-c mapkit cllocationmanager ios
我有一个应用程序拨打电话获取用户的位置:
-(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);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,因为NSLog无限地吐出一个新的位置,我何时应该停止呼叫该位置?嗯,我想它真的取决于我的应用程序的功能,但这不会导致电池耗尽吗?如果是这样,我应该真正研究停止更新的最佳方法.
Ash*_*ani 10
位置管理器的距离过滤器设置为kCLDistanceFilterNone.这会导致didUpdateLocations方法被称为无限时间.
locationManager.distanceFilter = kCLDistanceFilterNone;
Run Code Online (Sandbox Code Playgroud)
将此行更改为
locationManager.distanceFilter = 10;
Run Code Online (Sandbox Code Playgroud)
然后再试一次.根据需要更改值.
所以现在didUpdateLocation不会被无限次调用.:)
希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |