2016-08-03 13 views
0

と呼ばれます。私のコードでは、ユーザーの場所を初期化する必要があります。ユーザーの場所は自動的に

私は自分の位置を変更したいときはいつでも(私の位置を選択するか画面上を掃除する)、私のアプリは私を自分のユーザの位置に戻します。

that postの回答が少し見つかりました。 しかし、私はdidUpdateUserLocation()と呼んでいません。だから私は何をすべきか分からない。

私のアプリは頻繁にViewDidLoad()を呼び出しますか?

私の場所はここで私のコードです。

var usrLocation: CLLocationManager! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    if (CLLocationManager.locationServicesEnabled()) { 
     usrLocation = CLLocationManager() 
     usrLocation.delegate = self 
     usrLocation.requestAlwaysAuthorization() 
     usrLocation.requestLocation() 
     usrLocation.startUpdatingLocation() 
    } 
    mapView.delegate = self 
} 

また、私はちょうど私のusrLocation.requestLocation()機能を削除することはできません、私は、アプリの起動時に私のユーザーを中心にする必要があります。私はそれをどこか他の場所に呼び出すことを考えましたが、私はどこを知りませんか?

+1

'requestLocation()'と 'startUpdatingLocation()'の両方を呼び出さないでください。ユーザーの現在の場所を一度だけ取得する場合は 'requestLocation()'を呼び出し、継続的な場所の更新を望む場合は 'startUpdatingLocation()'を呼び出します。 – dan

+0

ああ、そうだった。どうもありがとう。本当の答えに入れてください:) –

答えて

0

ダンが言ったように、問題は私が今私のコードは、そのようなもので、それは完璧に動作requestLocation()startUpdatingLocation().

を呼ぶべきではないということでした。

var usrLocation: CLLocationManager! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    if (CLLocationManager.locationServicesEnabled()) { 
     usrLocation = CLLocationManager() 
     usrLocation.delegate = self 
     usrLocation.requestAlwaysAuthorization() 
     usrLocation.requestLocation() 
    } 
    mapView.delegate = self 
} 
1

あなたが実装されています
usrLocation.startUpdatingLocation()

これは場所を更新し続けるため、別の場所を指定するとすぐにユーザーの場所が更新されます。

この行を削除すると、コードが機能します。

+1

私は20分前に投稿しました:)ありがとう –

+1

確かに、私はそれをチェックしませんでしたが、あなたは解決策を見つける:) –

関連する問題