2017-03-17 126 views
0

這是我的場景。在應用程序開始在iOS中獲取位置

在應用程序開始第一次我需要用戶的位置,以獲取最接近他們的位置列表。

如果他們允許位置訪問,然後我想要使用他們的位置向他們展示位置列表。

我打電話更新了didUpdateLocation中的列表,但即使在允許第一次訪問後,列表也是空的。當我第二次打開應用程序時,該位置可用,並且我有座標並可以繼續顯示可用的列表。

我也曾嘗試運行代碼來填充論文列表2種委託方法:

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus){ 
    // switch statements then   
    fectchPlacesAndPopulateList() 
} 


func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) { 
     print("locationManager") 
     Utils.creatErrorMessage(title: "aaa", message: "aaaa", vc: self) 

     let userLocation:CLLocation = locations[0] as! CLLocation 
     let lng = userLocation.coordinate.longitude; 
     let lat = userLocation.coordinate.latitude; 
     let coordinates = "\(lat),\(lng)" 
     print("update locations = \(coordinates)") 
     fectchPlacesAndPopulateList() 
    } 

var locationManager = CLLocationManager() 
    override func viewDidLoad() { 
     super.viewDidLoad() 


if CLLocationManager.locationServicesEnabled() { 


       locationManager.delegate = self 
       locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
       locationManager.startUpdatingLocation() 
} 
} 
+0

是否調用了'didUpdateLocations'? – NobodyNada

+0

@NobodyNada,不,它不叫 – raklos

+0

我認爲它被稱爲在某一點,但不是在我點擊允許後。我需要在我有位置 – raklos

回答

1

didUpdateLocations簽名是錯誤的斯威夫特3,注意前導下劃線,(非可選)型的經理和退貨類型

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
+0

三個小時左右的時間來突出列表,它歸結爲下劃線和返回類型!...感謝您保存我的理智,經驗教訓! – raklos

相關問題