остановить обновления местоположения из iphone UI? - PullRequest
0 голосов
/ 23 июня 2011

Можно ли запускать / останавливать обновления местоположения из пользовательского интерфейса iphone? Все, что мне нужно от приложения, это показать мне свое местоположение, если я не нажму «стоп», а затем «старт» снова

Кажется, я не могу этого сделать ... У меня правильно отображается мое местоположение, я также создал две кнопки IBB и создал функцию для каждого из них, однако мое приложение вылетает, когда я нажимаю на каждое из них. из этих кнопок. Я поместил эти функции под viewcontroller.m.

Я новичок в этом, поэтому любая помощь будет оценена. Спасибо!

  • (IBAction) startUpdating: (CLLocation *) местоположение {

    [location startUpdatingLocation];

    }

  • (IBAction) stopUpdating: (CLLocation *) местоположение {

    [location stopUpdatingLocation];

    }

1 Ответ

2 голосов
/ 23 июня 2011

start / stopUpdatingLocation - это CLLocationManager методы экземпляра, а не CLLocation методы экземпляра ... поэтому создайте CLLocationManager экземпляр.

.h

@interface someClass:somesuperclass{
CLLocationManager * locationManager;
BOOL updating;
}
-(IBAction)toggleUpdating:(id)sender;

@end

.mгде-то в цикле загрузки / или инициализации представления:

-(void)viewDidLoad{
  [super viewDidLoad];
  locationManager = [[CLLocationManager alloc] init];
 }
 -(void)viewDidUnload{
 [locationManager stopUpdatingLocation];
 [locationManager release];
 [super viewDidUnload];
 }

-(IBAction)toggleUpdating:(id)sender
{
     if(!updating)
     {
         [locationManager startUpdatingLocation];
     }else{
         [locationManager stopUpdatingLocation];
     }
     updating = !updating;
}

и ваше действие выше никогда не сработает, потому что после двоеточия в действии будет объект, который отправил действие, UIButton в вашем случае.

...