You can try this, it works well.
@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
}
source
share