第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Swift:如何在異步urlsession函數(shù)中返回值?

Swift:如何在異步urlsession函數(shù)中返回值?

慕田峪9158850 2019-10-21 14:46:35
如您所見(jiàn),我正在接收一個(gè)JSON文件,使用SwiftyJSON對(duì)其進(jìn)行解析,并嘗試返回totalTime,但是它不允許我這樣做。我該怎么做呢?func googleDuration(origin: String, destination: String) -> Int{    // do calculations origin and destiantion with google distance matrix api    let originFix = origin.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil);    let destinationFix = destination.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil);    let urlAsString = "https://maps.googleapis.com/maps/api/distancematrix/json?origins="+originFix+"&destinations="+destinationFix;    println(urlAsString);    let url = NSURL(string: urlAsString)!    let urlSession = NSURLSession.sharedSession()    let task = urlSession.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in        if error != nil {            // If there is an error in the web request, print it to the console            println(error.localizedDescription)        }        println("parsing JSON");        let json = JSON(data: data);        if (json["status"].stringValue == "OK") {            if let totalTime = json["rows"][0]["elements"][0]["duration"]["value"].integerValue {                println(totalTime);            }        }    })    task.resume();}
查看完整描述

3 回答

?
翻翻過(guò)去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

另一個(gè)例子:


func getJason(url: NSURL, completionHandler: (String?, NSError?) -> Void ) -> NSURLSessionTask {


    var finalData: String!

    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in


        if error != nil{


            completionHandler(nil, error)

            return

        }

        else{


        if let urlContent = data{


            do{

                let jsonData = try NSJSONSerialization.JSONObjectWithData(urlContent, options: NSJSONReadingOptions.MutableContainers)


                if let ip = jsonData["ip"]{


                    finalData = ip as? String

                    completionHandler(finalData, nil)

                    return

                }


            }catch{

                print("EMPTY")

            }


        }


    }

}

    task.resume()

    return task

}

然后我在viewDidLoad中調(diào)用了它


getJason(url) { (ipAddress, error) -> Void in


        if error != nil{


            print(error)

        }

        else{

            if let ip = ipAddress{          //To get rid of optional


        self.ipLabelDisplay.text = "Your Ip Address is: \(ip)"


            }


        }

    }


查看完整回答
反對(duì) 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 760 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)