ios - 为什么我在 Xcode 命令行应用程序中没有收到来自 URL 请求的响应
问题描述
我在使用 swift 的 Xcode 中遇到问题。我尝试使用 Swift 中的 URL 请求从网页获取数据。在 dataTask 的完成处理程序中,我尝试打印数据。在 info.plist 文件中启用任意加载后,这在可可应用程序中工作正常。但是当我尝试在命令行应用程序中做同样的事情时,完成处理程序似乎什么都不做。终端在建造后甚至没有出现。有人可以告诉我我错过了什么吗?
解决方案
很可能您的命令行实用程序很早就完成了。为了避免这种情况,有几种不同的可能性。一种最常见的使用 dispatchMain() 永远不会返回,命令行实用程序应该“以编程方式”停止
把它放在 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()
推荐阅读
- python-3.x - 多处理类型错误:无法腌制 _thread.lock 对象
- android - Android Studio 3.2.1 Build error Hash String Error
- python - 为什么 re.sub 返回无?
- django - 将主页映射到 django admin
- javascript - 区分“Stock”和“Stocktaking”所需的正则表达式字符串
- reactjs - 如何在反应中获得对谷歌地图标记的dom节点的引用?
- google-cloud-platform - 绑定到 Google IoT 核心设备注册表的遥测主题数量限制为 10?
- sql - 如何获取每个用户的最后 7 个活动
- datepicker - 在 antd 的 datepicker 上显示假期
- javascript - React Context 初始状态正在发生变化 - JavaScript / React