2015-07-18 10 views
-1

當我做println(localSearchResponse)時,我得到一個MapItem對象,其中包含大量關於位置的詳細信息。在這個例子中,它的UCSD。這是輸出顯示在我的日誌中。MKLocalSearchResponse中的MKMapItem地標已被棄用(swift)

<MKLocalSearchResponse: 0x1c53d640> { 
boundingRegion = "<center:+32.87514836, -117.23958822 span:+0.00725621, +0.00825332>"; 
mapItems =  (
    "<MKMapItem: 0x1c538090> {\n isCurrentLocation = 0;\n name = \"University of California, San Diego\";\n phoneNumber = \"+18585342230\";\n placemark = \"University of California, San Diego, 9500 Gilman Dr, La Jolla, CA 92093-5004, United States @ <+32.87529400,-117.23961000> +/- 0.00m, region CLCircularRegion (identifier:'<+32.87514837,-117.23958825> radius 557.57', center:<+32.87514837,-117.23958825>, radius:557.57m)\";\n url = \"http://www.ucsd.edu\";\n}" 
); 
} 

請注意它是如何輸出placemark = University of California...並有地址?我如何得到這個值並將其存儲到變量中?我試圖localSearchResponse.mapItems.first.placemark,它產生一個錯誤:「錯誤:‘標’是不可用:不贊成ios7的API和更早版本不可用在雨燕」

這裏是我的代碼:

localSearchRequest = MKLocalSearchRequest() 
    localSearchRequest.naturalLanguageQuery = addressTextField.text 
    localSearch = MKLocalSearch(request: localSearchRequest) 
    localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in 

     if localSearchResponse == nil{ 
      var alert = UIAlertView(title: nil, message: "Place not found", delegate: self, cancelButtonTitle: "Try again") 
      alert.show() 
      return 
     } 

     //prints the MKLocalSearchResponse with name, phoneNumber, placemark 
     println(localSearchResponse) 

     //Get latitude and longitude 
     var newRecordLat = localSearchResponse.boundingRegion.center.latitude 
     var newRecordLong = localSearchResponse.boundingRegion.center.longitude 

     //How do I get the address, which is "placemark" in the MKLocalSearchResponse? 
     var newRecordAddress = localSearchResponse.mapItems...??? 


     //store values to Parse 
     self.latToParse = newRecordLat 
     self.longToParse = newRecordLong 



    } 

這裏是MKSearchResponse

文檔這裏是MKMapItem

回答

1

文檔的錯誤是誤導性的。這裏沒有任何東西被棄用。您需要處理一些可選項,並類型轉換:

雨燕1.2

if let newRecordAddress = (localSearchResponse.mapItems.first as? MKMapItem)?.placemark { 
    // use newRecordAddress 
} 

雨燕2.0

if let newRecordAddress = localSearchResponse.mapItems.first?.placemark { 
    // use newRecordAddress 
} 
+0

@JoshOConnor,並說解決問題了嗎?如果確實如此,請接受我的回答,或者如果您自己以另一種方式解決問題,請發佈自己的回答。 – vacawama

+0

http://stackoverflow.com/questions/31488686/accessing-mklocalsearchresponse-item-swift –

相關問題