CLLocationManager提示显示警报然后消失



这是一个可怕的bug。当使用cllocationmanager时,无论是使用startUpdatingLocation还是使用ALAsset方法来访问照片的元数据,系统都会按照预期提示位置访问…但是提示符一出现就消失了。我找不到这个原因,我希望别人也有这个问题。这不会发生在其他警报中(比如显示一个UIAlertView)。

我甚至可以设置目的属性,然后它显示,但同样的,只是一会儿然后它就关闭了。

这对我来说是一个大问题,因为我需要许可才能使用照片元数据。

您是否在如下方法中创建CLLocationManager实例:

-(void) viewDidAppear:(BOOL)animated {
    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    [locationManager startUpdatingLocation];
}

如果是,那么一旦函数退出,就会清理本地locationManager变量。您应该在实例或静态变量中保存对locationManager的引用:

static CLLocationManager *locationManager;
-(void) viewDidAppear:(BOOL)animated {
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    [locationManager startUpdatingLocation];
}

啊,现在问题似乎解决了。我不知道为什么,也不知道怎么回事。

最新更新