在我的app委托类中,我声明了locaitonManager:
var locationManager: CLLocationManager?
稍后在我的app中的一个视图控制器类中,我需要停止位置更新:
locationManager?.stopUpdatingLocation()
但我得到错误:
CLLocation Manager ....的值没有成员....
因为视图控制器无法访问在app delegate类中声明的位置管理器。我的简单方法是什么?我必须在app delegate中拥有locationManager访问权限。
注意:奇怪的是,我的
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
也在视图控制器内,它似乎工作正常。
答案 0 :(得分:3)
回答我自己的问题以供将来参考:
在ViewController的类中:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
然后在代码中我能够引用App Delegate中声明的locationManager,如下所示:
appDelegate.locationManager!.requestAlwaysAuthorization()
希望这有助于其他人。