单击“确定”后,首次运行时GPS无法启动

时间:2012-06-03 17:36:05

标签: iphone ios gps core-location

单击“想要使用当前位置”消息后,“首次运行”时GPS无法启动。我有一个表格视图来显示当前位置周围的地方名称。表中没有地图视图,只使用CoreLocation框架。当我第一次构建并运行我的应用程序并进入表格视图时,着名的消息“”myApp“想要使用您当前的位置”跳出来。单击“确定”按钮后,GPS未运行。但是当我再次进入桌面视图时,GPS效果很好。

问题:点击“确定”按钮后,如何在首次启动时运行GPS?提前谢谢!

编辑1

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    CLLocationManager *locationManager = [[[CLLocationManager alloc] init] autorelease];
    [locationManager setDelegate:self];    

    [locationManager startUpdatingLocation];    
}

有没有检测到“想要使用您当前位置”消息的“确定”按钮被点击?

1 个答案:

答案 0 :(得分:3)

显示一些代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {

         [NSTimer scheduledTimerWithTimeInterval:2 target:self     selector:@selector(timerFired:) userInfo:nil repeats:YES];

    }
}

- (void)timerFired:(NSTimer*)theTimer{

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) {
        [self startUpdatingCurrentLocation];
        [theTimer invalidate];
    } 
    [self startUpdatingCurrentLocation];

}

计时器等待直到某个时间间隔过去然后触发,向目标对象发送指定的消息。 NSTimer Reference.

如果用户按下“确定”按钮,计时器可以第二次执行启动GPS并以透明方式执行。如果没有,计时器将继续检查GPS状态,直到应用程序得到用户的选择。