2016-09-22 67 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