在游乐场或项目外快速联网?

问题描述 投票:1回答:1

我正在尝试构建一个程序,我会定期运行以检查网站是否已更改。它在Swift Playgrounds中工作,但是,如果我尝试将其复制到.swift文件中,然后直接在终端中运行它,它就不会返回响应。事实上,它似乎没有做任何事情。

这是我的代码:

func getSite(website: String) {
    let url = URL(string: website)!
    let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
        if error != nil {
            print(error?.localizedDescription)
        } else {
            if let data = data, let host = response?.url?.host, let scheme = response?.url?.scheme {
                print("Retrieved data from \(host) over \(scheme)...")
                let site = String(data: data, encoding: .utf8)
                print(site)
            }
        }
    }
    task.resume()
}

有任何想法吗?谢谢!

swift bash networking
1个回答
0
投票

好吧,我只是想通了 - 亚历山大的评论是一个巨大的帮助。

我只需要设置一个信号量:

var semaphore = DispatchSemaphore(value: 0)

和运行异步线程后的semaphore.wait()。在完成处理程序结束时,我把semaphore.signal()。而已!

© www.soinside.com 2019 - 2024. All rights reserved.