首页 > 解决方案 > 为什么我在 Xcode 命令行应用程序中没有收到来自 URL 请求的响应

问题描述

我在使用 swift 的 Xcode 中遇到问题。我尝试使用 Swift 中的 URL 请求从网页获取数据。在 dataTask 的完成处理程序中,我尝试打印数据。在 info.plist 文件中启用任意加载后,这在可可应用程序中工作正常。但是当我尝试在命令行应用程序中做同样的事情时,完成处理程序似乎什么都不做。终端在建造后甚至没有出现。有人可以告诉我我错过了什么吗?

标签: iosswiftxcodemacos

解决方案


很可能您的命令行实用程序很早就完成了。为了避免这种情况,有几种不同的可能性。一种最常见的使用 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()

推荐阅读