我是Swift的新手,我已经学会了基本的语法,并且我正在努力做更多高级的东西。 我对代码的第一次尝试是在URL http://www.test.com上执行HTTP请求并获取响应:
//: Playground - noun: a place where people can play
import UIKit
var url : NSURL = NSURL(string: "http://www.test.com")!
var request: NSURLRequest = NSURLRequest(URL: url)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
var responseString:NSString?;
let task : NSURLSessionDataTask = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
print("toto")
if error != nil {
print("error=\(error)")
return
} else {
print("response = \(response!)")
responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
print("responseString = \(responseString)")
}
});
task.resume()
print (responseString)
当我在Xcode中运行代码时," toto"没有打印,responseString是零,任何关于出了什么问题的想法?
答案 0 :(得分:4)
您在游乐场中运行此操作,并且需要做一些额外的工作才能使异步任务运行。
首先,导入XCPlayground:
import XCPlayground
然后,在游乐场的尽头,添加以下行:
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
这样可以让游乐场继续执行,这样它就可以等待你的完成块发生。
对于Xcode 8:
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true