2016-09-22 2 views
4

simle rest 클라이언트 https://httpbin.org/ip을 호출하고 iOS 장치의 레이블 필드에 JSON 결과를 붙여 넣어야합니다. 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 { NSData (contentsOf : NSURL (string : urlToRequest)! URL로 반환)! } – Oleg

관련 문제