我在使用swift的Xcode中遇到问题。我试图在Swift中使用URL请求从网页获取数据。在dataTask的完成处理程序中,我尝试打印数据。在info.plist文件中启用任意加载后,这在可可应用程序中可以正常工作。但是,当我尝试在命令行应用程序中执行相同的操作时,似乎完成处理程序什么也不做。航站楼建成后甚至没有出现。有人可以告诉我我所缺少的吗?
答案 0 :(得分:0)
创建一个信号量以阻止当前线程。等待URL会话结束。从完成处理程序发出信号量。
答案 1 :(得分:0)
您的命令行实用程序很可能很早就完成了。为避免这种情况,有几种不同的可能性。一种最常见的用法,它永远不会返回,并且应该“以编程方式”停止命令行实用程序
将其放入main.swift中并尝试:-)
import Foundation
print("----------- init request -----------")
DispatchQueue.main.async {
if let url = URL(string: "https://code-maven.com/try/examples/html/hello_world_html5.html") {
do {
let contents = try String(contentsOf: url)
print(contents)
} catch {
fatalError("contents could not be loaded")
}
exit(0)
} else {
fatalError("the URL was bad!")
}
}
print("---------- continue execution ------")
dispatchMain()