从AppDelegate和ViewController访问locaitonManager

时间:2015-11-06 21:58:01

标签: ios swift core-location cllocationmanager appdelegate

在我的app委托类中,我声明了locaitonManager:

var locationManager: CLLocationManager?

稍后在我的app中的一个视图控制器类中,我需要停止位置更新:

locationManager?.stopUpdatingLocation()

但我得到错误:

  

CLLocation Manager ....的值没有成员....

因为视图控制器无法访问在app delegate类中声明的位置管理器。我的简单方法是什么?我必须在app delegate中拥有locationManager访问权限。

注意:奇怪的是,我的 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 也在视图控制器内,它似乎工作正常。

1 个答案:

答案 0 :(得分:3)

回答我自己的问题以供将来参考:

在ViewController的类中:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

然后在代码中我能够引用App Delegate中声明的locationManager,如下所示:

appDelegate.locationManager!.requestAlwaysAuthorization()

希望这有助于其他人。