来自 JSON Api 的 Swift 请求数据
Posted
技术标签:
【中文标题】来自 JSON Api 的 Swift 请求数据【英文标题】:Swift Request Data from JSON Api 【发布时间】:2017-11-22 16:35:31 【问题描述】:我试图创建一个从 json api 获取对应的函数,但该函数返回值的速度比 alamofire 请求快……有人可以帮我吗?非常感谢你。代码如下。
func trainNameToTelecode(trainName: String) -> String
var returnTelecode: String = ""
Alamofire.request("http://tra.ink/api/query/train?name=\(trainName)").responseJSON (response) in
let result = response.result
guard let resultDict = result.value as? Dictionary<String,AnyObject> else return
guard let bodyDict = resultDict["body"] as? [String:AnyObject] else return
returnTelecode = bodyDict["telecode"] as! String
return returnTelecode
【问题讨论】:
【参考方案1】:您可以使用完成处理程序,当您的请求完成时将返回字符串,例如:
func trainNameToTelecode(trainName: String, completion: (String) -> Void)
Alamofire.request("http://tra.ink/api/query/train?name=\(trainName)").responseJSON (response) in
let result = response.result
guard let resultDict = result.value as? Dictionary<String,AnyObject> else return
guard let bodyDict = resultDict["body"] as? [String:AnyObject] else return
if let returnTelecode = bodyDict["telecode"] as? String
completion(returnTelecode)
else
completion("telecode is nil")
//and where you call your function:
self.trainNameToTelecode(trainName: "yourName") (telecode) in
print(telecode)
【讨论】:
以上是关于来自 JSON Api 的 Swift 请求数据的主要内容,如果未能解决你的问题,请参考以下文章
来自 Tracker Network API (SWIFT) 的 JSON
使用来自网站 API 的 POST 请求获取 Json 数据 [重复]