2016-10-17 4 views
0

私はちょうどiOS上でSWIFTプログラミングを始めています。しかし、私はJAVA、C#、PHPなど他の言語で良い経験をしています。それは、私は少し問題に遭遇していると言いました。私は地理的な場所に基づいてユーザー情報を表示する簡単なアプリケーションを作成しています。私はhereのチュートリアルに従っています。アラートボックスユーザに場所特権を与えるように指示していません

しかし、Swift 2.xと3.xの間で多くのことが変更されているので、コードを修正する必要がありました。それほど難しくなく、今まで私はそれをコンパイルするようにしました。しかし、私は決して私がデバイスの場所を使用できるようにするアプリケーションによって頼まれることはありません。

私はInfo.plistに "NSLocationAlwaysUsageDescription"を入れることに関して、アップルの指示通りにhereに従っています。しかし、私は決して尋ねられません。このアラートを表示する必要のある関連コードを以下に示します。

ご協力いただければ幸いです。ありがとう。

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    // 1. status is not determined 
    if CLLocationManager.authorizationStatus() == .notDetermined { 
     locationManager.requestAlwaysAuthorization() 
    } 
     // 2. authorization were denied 
    else if CLLocationManager.authorizationStatus() == .denied { 
     let controller = UIAlertController(title: "Error!", message: "Location services were previously denied. Please enable location services for this app in Settings.", preferredStyle: .alert) 

     let alertAction = UIAlertAction(title: "Dismiss", style: .destructive) { (action) in 
      print("Dismiss button tapped!") 
     } 

     controller.addAction(alertAction) 

    } 
     // 3. we do have authorization 
    else if CLLocationManager.authorizationStatus() == .authorizedAlways { 
     locationManager.startUpdatingLocation() 
    } 
} 
+1

ヤック。あなたは 'スイッチ'について知っていますか? – matt

+0

@mattこれは実動コードではありません。私はmapViewを動作させようとしていました。私はiOSプログラミングの初心者ですので、ご質問をお許しください。 –

答えて

1

あなたのコードでは、あなたは自分のアラートを提示する必要が正常に動作している:

self.present(controller, animated: true, completion: nil) 

もが私の答えは、コードのこのタイプのためswitchを使用する方法をhereを見てみましょう。

関連する問題