在swift 3中,我目前正在使用Location为我的应用程序做一些事情,我想检查它是否在稍后的某个时间启用
我有一个应用程序,可以找到一个人的坐标,并将其用于一些代码,当然,如果我没有启用位置,我就不能使用它,但我想检查它是否在以后的网站上启用。例如: 用户登录,转到我的标签,没有位置,所以它不会显示最近的商店,但一旦他在那里启用位置,侦听器就会告诉我的代码它已打开,并相应地执行操作在swift 3中,我目前正在使用Location为我的应用程序做一些事情,我想检查它是否在稍后的某个时间启用,swift,timer,cllocationmanager,cllocation,Swift,Timer,Cllocationmanager,Cllocation,我有一个应用程序,可以找到一个人的坐标,并将其用于一些代码,当然,如果我没有启用位置,我就不能使用它,但我想检查它是否在以后的网站上启用。例如: 用户登录,转到我的标签,没有位置,所以它不会显示最近的商店,但一旦他在那里启用位置,侦听器就会告诉我的代码它已打开,并相应地执行操作 我在考虑用计时器每秒钟检查一次。。。但这似乎有点愚蠢,还有其他选择吗?实施什么比较好?在您需要定位的屏幕中,只需检查定位服务是否已启用 override func viewDidLoad() { super.v
我在考虑用计时器每秒钟检查一次。。。但这似乎有点愚蠢,还有其他选择吗?实施什么比较好?在您需要定位的屏幕中,只需检查定位服务是否已启用
override func viewDidLoad()
{
super.viewDidLoad()
self.checkLocationServiceEnabled()
}
func checkLocationServiceEnabled()
{
let locationAuthorizationStatus = CLLocationManager.authorizationStatus()
switch locationAuthorizationStatus {
case .AuthorizedAlways ,.AuthorizedWhenInUse ,.NotDetermined ,.Restricted:
break
case .Denied:
self.alertTurnOnLocationFromDevicePrivacySetting()
}
}
func alertTurnOnLocationFromDevicePrivacySetting()
{
let delayTime = dispatch_time(DISPATCH_TIME_NOW,
Int64(1 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
let alertController = UIAlertController(
title: ALERT_TURN_ON_LOCATION_FROM_DEVICE_PRIVACY,
message: "",
preferredStyle: .Alert)
let cancelAction = UIAlertAction(title: ALERT_OK, style: .Cancel, handler: nil)
alertController.addAction(cancelAction)
self.navigationController?.topViewController!.presentViewController(alertController, animated: true, completion: nil)
}
}
你看过
CLLocationManager
和CLLocationManagerDelegate
了吗?MKMapView做了所有这些。。。不需要使用“计时器”。(见附件)