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 в вашем случае.