从iphone UI停止位置更新?

时间:2011-06-23 18:18:24

标签: iphone xcode4 location core-location

是否可以从iphone的UI启动/停止位置更新?除了点击“停止”然后再“开始”,我在应用程序中所需要的只是向我显示我的位置。

我似乎无法做到这一点......我的位置显示正确,我还创建了两个IBButton并为每个创建了一个函数,但是,当我点击每一个时,我的应用程序崩溃了那些按钮。我将这些函数放在viewcontroller.m。

我对此有点新意,所以任何帮助都会受到赞赏。谢谢!

  • (IBAction)startUpdating :( CLLocation *)位置 {

    [location startUpdatingLocation];

    }

  • (IBAction)stopUpdating:(CLLocation *)位置 {

    [location stopUpdatingLocation];

    }

1 个答案:

答案 0 :(得分:2)

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。