У меня возникли проблемы с поиском способа что-то обновить. У меня есть эта функция:
func pingHost(_ fullURL: String) -> Bool {
let url = URL(string: fullURL)
let task = URLSession.shared.dataTask(with: url!) { _, response, _ in
if let httpResponse = response as? HTTPURLResponse {
if httpResponse.statusCode == 200 {
self.status = true
} else if httpResponse.statusCode != 200 {
self.status = false
}
}
}
task.resume()
return self.status
}
Я хочу, чтобы эта функция повторялась каждую секунду. Я уже пробовал цикл while в функции viewDidLoad
. Но если я хочу добавить пользовательский интерфейс, он не может загрузиться из-за while (цикл while никогда не заканчивается, поэтому viewDidLoad никогда не будет выполняться должным образом).
ViewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.purple
statusLabel.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(statusLabel)
statusLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
statusLabel.topAnchor.constraint(equalTo: view.topAnchor, constant: 125).isActive = true
statusLabel.text = "Status Label"
statusLabel.textAlignment = .left
statusLabel.textColor = UIColor.white
// Do any additional setup after loading the view.
while true {
if (self.pingHost("http://example.com") as Bool) != false {
print("URL is online")
} else if (self.pingHost("http://example.com") as Bool) != true {
print("URL doesn't give a response back")
}
}
}
Надеюсь, кто-нибудь сможет мне помочь с этой проблемой. Заранее спасибо!