не программист на swift, но иногда приходится баги править ;(
Вообщем меня есть класс который реалисте протокол в котором один метод (но это не так важно 😉 который вызывается когда происходит смена состояния в сервисе который я использую. По пропитом я получаю некий статус: пусть это будет connected и disconnected.
Задача у меня следующая. Я по нажатию на кнопку дергаю некий метод (пусть это будет connect) и в нем я посылаю команду сервису что нужно совершить connect. И чрез какое-то время ко мне прилетит статус connected.
Так вот мне нужно дождаться этого статуса и что-то сделать но только если connect инициировал мой вызов. В противном случае ничего делать не нужно. Так вот вопрос как правильно на swift это сделать.
Сейчас я накостылил так:
private var onConnectedTask: (() -> Void)? = nil
В своем методе я делаю:
onConnectedTask = {
// do something
}
А в методе которые реализован через протокол:
if let onConnectedTask = onConnectedTask {
onConnectedTask()
}
А если вдруг мне нужно отменить это действие то просто обнуляю
onConnectedTask = nil
Оно конечно работает но меня дико коробит от такого решения 😉 Какое-то оно не красивое чтоли. Так вот как правильно это реализовать ?
ну это типиные задачи запросов сеть, гуглите swift networking пробуйте
Обсуждают сегодня