Я обливание переполнения стека для возрастов пытается найти выход из этой ошибки:неожиданное не аннулируются возвращаемое значение в недействительной функции
unexpected non void return value in void function
, что я получаю с возвратом Bool
в моей функции.
Я просто не могу выкапывать свой путь из этого. Я уверен, что это связано с асинксом, но я не очень хорошо разбираюсь в этих типах функций.
class CheckReachability {
class func setupReachability (hostName:String?, useClosures: Bool) -> Bool{
var reachability : Reachability!
var connected = false
let reachability2 = hostName == nil ? Reachability() : Reachability(hostname: hostName!)
reachability = reachability2
try! reachability?.startNotifier()
if useClosures {
reachability2?.whenReachable = { reachability in
DispatchQueue.main.async {
connected = true
print("Reachable....")
}
}
reachability2?.whenUnreachable = { reachability in
DispatchQueue.main.async {
connected = false
print("Not Connected....")
}
}
} else {
NotificationCenter.default.addObserver(self, selector: Selector(("reachabilityChanged:")), name: ReachabilityChangedNotification, object: reachability2)
}
return connected
}
}
называют это из viewdidload на другой ВХ не позволяет достаточно времени, чтобы получить истинный результат
let connected = CheckReachability.setupReachability(hostName: nil, useClosures: true)
if connected {
Ваш код не дает мне эту ошибку. Проверить наличие неуравновешенного {} в коде не показано – Paulw11
Что именно вы хотите достичь? Каждый раз, когда статус достижимости меняется, чтобы знать об этом? –
Вы правы. Я слишком долго смотрел на это. Проблема, которую я сейчас имею, это инициализировать функцию из моего viewDidLoad в другом VC, не позволяя достаточно времени вернуть истинный результат. добавлена информация о редактировании. – Pippo