我看了youtube的一个教程并尝试了这些教程.然后我在playground文件中编写代码,但没有结果,但没有错误.因此,我在XCode中创建了一个新项目.然后向Main.StoryBoard添加一个Button并将UI连接到代码.在完成所有必要的事情后,我在模拟器中进行了项目并且一切顺利,我可以看到完成处理程序中的所有工作.以下是XCode项目中的代码.
@IBAction func doNetwork(_ sender: UIButton) {
print("start network jobs...")
// url
let url: URL! = URL(string: "http://192.168.0.12/swnet.php")
URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)
// url session
let session = URLSession.shared
let task: URLSessionDataTask = session.dataTask(with: url, completionHandler: {
(data, response, error) in
print("Handler")
if let respData = data {
print("Data")
print(respData)
}
if let resp = response {
print("Resp")
print(resp)
}
if let err = error {
print("Error")
print(err)
}
})
task.resume()
}
Run Code Online (Sandbox Code Playgroud)
以下是操场上的代码.
// url
let url: URL! = URL(string: "http://192.168.0.12/swnet.php")
URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)
// url session
let session = URLSession.shared
let task: URLSessionDataTask = session.dataTask(with: url, completionHandler: {
(data, response, error) in
print("Handler")
if let respData = data {
print("Data")
print(respData)
}
if let resp = response {
print("Resp")
print(resp)
}
if let err = error {
print("Error")
print(err)
}
})
task.resume()
Run Code Online (Sandbox Code Playgroud)
cre*_*eak 10
您需要告诉操场继续执行足够长的时间以完成异步代码.要做到这一点:
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
Run Code Online (Sandbox Code Playgroud)
默认情况下,执行所有顶级代码,然后终止执行.使用异步代码时,启用无限期执行以允许在达到操场的顶级代码结束后继续执行.反过来,这为线程和回调提供了执行的时间.
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |