2016-09-22 66 views
4

我需要調用simle rest客戶端https://httpbin.org/ip並將JSON結果粘貼到iOS設備的標籤字段中。 我在XCode 8.0中編寫,而Swift版本是3.0。 我發現了很多教程,但都是爲老版本的Swift編寫的。編譯器失敗,我無法修復它。看來新版本有重大變化。 任何人都可以請提供一個工作示例。將不勝感激。謝謝。如何在Swift 3.0中調用REST服務

在這個例子中,我期待看到REST調用和讀取結果。

回答

1

你可以試試這個,效果很好。

@IBOutlet weak var ipLabel: UILabel! 

     override func viewDidLoad() { 
     super.viewDidLoad() 
     let parseData = parseJSON(getJSON("https://httpbin.org/ip")) 
     let ipvalue = parseData.valueForKey("origin") 
     self.performSelectorOnMainThread(#selector(ViewController.updateIPlbl(_:)), withObject: ipvalue, waitUntilDone: false) 
     } 

    func getJSON(urlToRequest:String) -> NSData 
     { 
      return NSData(contentsOfURL: NSURL(string: urlToRequest)!)! 
     } 

    func parseJSON(inputData:NSData) -> NSDictionary{ 
      let dictData = (try! NSJSONSerialization.JSONObjectWithData(inputData, options: .MutableContainers)) as! NSDictionary 
      return dictData 
     } 

    func updateIPlbl(text: String) { 
      self.ipLabel.text = "Your IP is " + text 
     } 
+0

非常感謝。但是XCode要求我在你提供的每個函數中稍微改變語法。你能解釋爲什麼你的版本不能成功編譯?我的代碼如下: 例如:func getJSON(urlToRequest:String) - > NSData { {contentOf:NSURL(string:urlToRequest)!as URL)! } – Oleg