2017-02-10 9 views
0

私は人のcoordsを見つけて、もちろん私は場所を有効にしていない場合、私はそれを使用することはできませんが、私はそれが後でサイトで有効になっているかどうかをチェックしたいと思います。例:すぐに3私は現在、場所を使用して私のアプリのためにいくつかのものをやっている、私はプロセスの後のある時点で有効になっているかどうかを確認したい

ユーザーがログインし、自分のタブに移動するため、ロケーションがないため、一番近いショップは表示されませんが、一度ロケーションを有効にすると、リスナーはそれに応じて自分のコードを通知します。

私は毎秒チェックするためにタイマーを使うことを考えていましたが、それはちょっとばかげているようですが、何か別の選択肢がありますか?実装には何が良いでしょうか?

+0

あなたは 'CLLocationManager'と' CLLocationManagerDelegate'を見ましたか? – Callam

+0

MKMapViewはこれをすべて行います...「タイマー」を使用する必要はありません。 (http://stackoverflow.com/a/11675587/499581参照) –

答えて

0

ロケーションが必要な画面で、ロケーションサービスが有効かどうかを確認してください。

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) 
    } 
} 
関連する問題

 関連する問題