2016-09-22 3 views
4

aufrufen Ich muss Simle Rest Client https://httpbin.org/ip aufrufen und JSON-Ergebnis in Label-Feld in iOS-Gerät einfügen. Ich schreibe in XCode 8.0, und die Swift-Version ist 3.0. Ich fand viele Tutorials, aber alle von ihnen sind für ältere Versionen von Swift geschrieben. Compiler schlägt fehl und ich kann es nicht beheben. Es scheint, dass neuere Versionen signifikante Änderungen aufweisen. Kann mir bitte jemand ein funktionierendes Beispiel geben. Wird sehr geschätzt werden. Vielen Dank.Wie REST-Service in Swift 3,0

In dem Beispiel erwarte ich den REST-Aufruf und das Ergebnis zu lesen.

Antwort

1

Sie können dies versuchen, es funktioniert gut.

@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

Vielen Dank. Aber XCode hat mich gebeten, die Syntax fast in jeder Funktion, die Sie zur Verfügung gestellt haben, leicht zu ändern. Könnten Sie bitte erklären, warum Ihre Version nicht erfolgreich kompiliert wurde? Mein Code ist der folgende Zum Beispiel: func getJSON (urlToRequest: String) -> NSData { zurückgeben NSData (contentsOf: NSURL (string: urlToRequest)! Als URL)! } – Oleg

Verwandte Themen