diff --git a/SocketIOClientSwift/SocketIOClient.swift b/SocketIOClientSwift/SocketIOClient.swift index ef1de9f..f787864 100644 --- a/SocketIOClientSwift/SocketIOClient.swift +++ b/SocketIOClientSwift/SocketIOClient.swift @@ -171,10 +171,10 @@ public final class SocketIOClient: NSObject, SocketEngineClient { let time = dispatch_time(DISPATCH_TIME_NOW, Int64(timeoutAfter) * Int64(NSEC_PER_SEC)) - dispatch_after(time, dispatch_get_main_queue()) { - if self.status != .Connected { - self.status = .Closed - self.engine?.close(fast: true) + dispatch_after(time, dispatch_get_main_queue()) {[weak self] in + if self != nil && self?.status != .Connected { + self?.status = .Closed + self?.engine?.close(fast: true) handler?() }