【发布时间】:2016-02-22 10:54:45
【问题描述】:
func getTopicIdFromMYSQL(){
let myUrl = NSURL(string: "xxxx")
let request = NSMutableURLRequest(URL: myUrl!)
request.HTTPMethod = "POST"
let email:String = "xxx@gmail.com"
let postString = "email=\(email)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
data, response, error in
if(error != nil){
print("Get all topic")
print("error=\(error)")
return
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary
if let parseJSON = json
{
let resultValue = parseJSON["status"] as? String
print("Get all topic")
favouriteTopic = parseJSON["getResult"]! as! [AnyObject]
print("return topic:\(favouriteTopic)")
dispatch_async(dispatch_get_main_queue(), {
if(resultValue == "Success"){
}
else{
let error = UIAlertController(title: "Error", message: "Please check your network configuration!:-(", preferredStyle: .Alert)
let cancel = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
let ok = UIAlertAction(title: "OK", style: .Default, handler: nil)
error.addAction(cancel)
error.addAction(ok)
}
})
}
}catch
{
print(error)
}
}
task.resume()
} 我已经得到了这段代码,但是,我想在它之后运行另一个函数。我该怎么办。喜欢:
getTopicIdFromMYSQL()
getCommentFromMYSQL()
print("Finish")
我发现问题是我的代码没有按顺序执行,getCommentFromMYSQL函数和getTopicIdFromMYSQL几乎一样,我想按顺序运行这三个怎么办?
【问题讨论】:
-
将它们转换为 NSOperations,使每个操作都依赖于前一个操作。 WWDC 15 上有一个很好的视频
标签: ios swift asynchronous dispatch