我有这个简单的代码来执行网络请求:
class Downloader {
var isCompleted = false
func start() {
URLSession.shared.dataTask(with: url) { data, response, error in
isCompleted = true
}
}
}
我想在其他代码中检查isCompleted
以确定请求是否已完成。
问题是我似乎以这种方式创建了数据竞争,因为该标志是在后台队列中设置的,并且可能会在任何队列中进行检查。
有没有办法使用GCD使isCompleted
线程安全?