2016-04-10 5 views
0

CLLocationManager requestAlwaysAuthorizationのポップアップがすぐに表示され、非表示になり、[許可]ボタンを押す時間がありません。これは私が場所の管理のために書いたクラスです。CLLocationManager requestAlwaysAuthorizationのポップアップがすぐに表示され、非表示になる

私のコードでは
import UIKit 

class TMLocationManager: NSObject, CLLocationManagerDelegate { 
    var locationManager: CLLocationManager? 

    override init() { 
     super.init() 
    } 

    static func startLocationManager() { 
     let manager = TMLocationManager() 
     manager.getPermission() 
    } 

    private func getPermission() { 
     locationManager = CLLocationManager() 
     locationManager!.desiredAccuracy = kCLLocationAccuracyBestForNavigation 
     locationManager!.delegate = TMLocationManager.init() 

     switch CLLocationManager.authorizationStatus() { 
     case .Denied, .Restricted: 
      return 
     case .NotDetermined: 
      locationManager!.requestAlwaysAuthorization() 
      break 
     case .AuthorizedAlways, .AuthorizedWhenInUse: 
      locationManager!.startUpdatingLocation() 
     default: 
      break 
     } 
    } 

} 

私はちょうど私のコメントと併せてTMLocationManager.startLocationManager()

+1

'manager'も保持する必要があります –

+1

startLocationManager関数では、関数が終了するとすぐにスコープから外れるローカル変数を作成しています。 – Gruntcakes

+0

はい、@max_とカリウムペルマンガン酸塩を助けました ありがとう –

答えて

0

を書き、あなたはそれがリリースされるようmanager変数が保持されていることを確認する必要があります、startLocationManagerメソッドの実行が終了すると、アラートは終了します。

関連する問題