diff --git a/SocketIOClientSwift/SocketAckMap.swift b/SocketIOClientSwift/SocketAckMap.swift index d2940ea..d2e434c 100644 --- a/SocketIOClientSwift/SocketAckMap.swift +++ b/SocketIOClientSwift/SocketAckMap.swift @@ -35,7 +35,7 @@ private struct SocketAck: Hashable, Equatable { self.ack = ack } - init(ack:Int, callback:AckCallback?) { + init(ack:Int, callback:AckCallback) { self.ack = ack self.callback = callback } @@ -65,6 +65,10 @@ struct SocketAckMap { } mutating func timeoutAck(ack:Int) { - self.acks.remove(SocketAck(ack: ack))?.callback(["NO ACK"]) + let callback = self.acks.remove(SocketAck(ack: ack)) + + dispatch_async(dispatch_get_main_queue()) { + callback?.callback(["NO ACK"]) + } } } diff --git a/SocketIOClientSwift/SocketPacket.swift b/SocketIOClientSwift/SocketPacket.swift index c89eaba..ab5c471 100644 --- a/SocketIOClientSwift/SocketPacket.swift +++ b/SocketIOClientSwift/SocketPacket.swift @@ -77,22 +77,14 @@ final class SocketPacket: Printable { } func addData(data:NSData) -> Bool { - func checkDoEvent() -> Bool { - if self.placeholders == self.currentPlace { - return true - } else { - return false - } - } - - if checkDoEvent() { + if self.placeholders == self.currentPlace { return true } self.binary.append(data) self.currentPlace++ - if checkDoEvent() { + if self.placeholders == self.currentPlace { self.currentPlace = 0 return true } else {