我目前正在为一个小应用程序使用英雄联盟API -它需要我一个接一个地发送一些请求,但目前我遇到了一个问题。下面是我的代码
import UIKit
var summonorname:String = ""
class ViewController: UIViewController {
var SummonorID = ""
@IBOutlet weak var Input: UITextField!
@IBAction func SubmitBT(sender: AnyObject) {
summonorname = Input.text
println(summonorname)
let urlpath_summonorID = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/"+summonorname+"?api_key=12345-12345-12345-12345-12345"
let url_summonorID = NSURL(string: urlpath_summonorID)
let session_1 = NSURLSession.sharedSession()
let task_1 = session_1.dataTaskWithURL(url_summonorID, completionHandler: {data,response, error -> Void in
if (error != nil) {
println(error)
}else{
let summonorID_JSON = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
var ID_dict = summonorID_JSON["testsummonor"] as NSDictionary
var SummonorID: AnyObject? = ID_dict["id"]
println(SummonorID!)
}
})
task_1.resume()
let urlpath_summonorLeague = "https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/"+self.SummonorID+"?api_key= 12345-12345-12345-12345-12345"
println(urlpath_summonorLeague)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}第一个请求发送得很好,我得到了JSON并可以对其进行解析,但是
let urlpath_summonorLeague = "https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/"+self.SummonorID+"?api_key=12345-12345-12345-12345-12345"
println(urlpath_summonorLeague)这部分被发送到fast,所以它仍然缺少"self.SummonorID“,并且"self.SummonorID”在like之后打印:
OUTPUT
testsummonor
https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/?api_key=12345-12345-12345-12345-12345
00000001如何解决这个问题,比如“让请求先返回”,然后再进行下一步?
发布于 2014-10-22 22:34:10
您只需在代码中启动一个任务。如果您希望在完成任务之后完成某项任务,那么将其放入完成处理程序中。
发布于 2014-10-22 23:00:55
@芒迪
import UIKit
var summonorname:String = ""
class ViewController: UIViewController {
var SummonorID = ""
@IBOutlet weak var Input: UITextField!
@IBAction func SubmitBT(sender: AnyObject) {
summonorname = Input.text
println(summonorname)
let urlpath_summonorID = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/"+summonorname+"?api_key=12345-12345-12345-12345-12345"
let url_summonorID = NSURL(string: urlpath_summonorID)
let session_1 = NSURLSession.sharedSession()
let task_1 = session_1.dataTaskWithURL(url_summonorID, completionHandler: {data,response, error -> Void in
if (error != nil) {
println(error)
}else{
let summonorID_JSON = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
var ID_dict = summonorID_JSON["testsummonor"] as NSDictionary
var SummonorID: AnyObject? = ID_dict["id"]
println(SummonorID!)
let urlpath_summonorLeague = "https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/"+self.SummonorID+"?api_key= 12345-12345-12345-12345-12345"
println(urlpath_summonorLeague)
}
})
task_1.resume()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}https://stackoverflow.com/questions/26509284
复制相似问题