2016-08-03 37 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

當然,我沒有檢查,但很好,你找到解決方案:) –