2015-10-13 37 views
0

我想要得到的GPS信號的地址和我寫的代碼:`斯威夫特2,CLGeocoder()和標

CLGeocoder().reverseGeocodeLocation(userLocation) { (placemarks, error) -> Void in 
      if error != nil { 


      print("Κάτι δεν πήγε καλά με το GPS!") 

     } else { 

      if let p = CLPlacemark(placemark: placemarks?[0] as! CLPlacemark) { 

       print(p) 

      } 

     } 

的錯誤是:「?CLPlacemark」從低迷現狀到'CLPlacemark'只能解開可選項;你的意思是使用'!'嗎? 。我在哪裏有錯誤?

+0

的錯誤是在第5行(如果設p = ...) – iGermanos

回答

0

不需要像這樣初始化CLPlacemark。這個異步方法返回一個CLPlacemarks數組,這個數組是可選的。因此,如果數組存在並且返回該數組的第一個元素(它已經是CLPlacemark),則需要展開該數組。

if let validPlacemark = placemarks?[0]{ 
print(validPlacemark) 
} 

'[CLPlacemark]?' is not convertible to '[CLPlacemark]' -> swift2

+0

我做到了,但現在的錯誤是這樣的:初始值設定條件結合必須有可選的類型,而不是「CLPlacemark」 。 – iGermanos

+0

喬希,你是對的!有用!非常感謝... – iGermanos

+0

真棒很高興我可以幫忙 –