如何仅针对该应用的应用禁用位置服务?

时间:2015-12-03 15:15:59

标签: ios objective-c

我正在开发一个使用位置服务的应用。我只想通过在应用设置中切换UISwitch来禁用该应用的位置。那么我可以从应用程序本身启用或禁用访问位置吗?

1 个答案:

答案 0 :(得分:1)

您可以将该开关绑定到在User Defaults中设置布尔值的方法(类似于USER_LOCATION_ENABLED)。

-(void)switchAction:(id)sender {

   UISwitch *theSwitch = (UISwitch *)sender;
   if(theSwitch.isOn) {
      [[NSUserDefaults standardDefaults] setObject:YES forKey:@"USER_LOCATION_ENABLED"];
   } else {
      [[NSUserDefaults standardDefaults] setObject:NO forKey:@"USER_LOCATION_ENABLED"];
   }
   [[NSUserDefaults standardDefaults] synchronize];
}

然后,在您的代码中,如果USER_LOCATION_ENABLED设置为true,则仅启动位置服务。

-(void)startLocationServices {
   if([[NSUserDefaults standardDefaults] objectForKey:@"USER_LOCATION_ENABLED"]) {
      [locationManager startUpdatingLocation]; 
   {
}