@@ -430,14 +430,15 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
430430 public func once( event: String , callback: NormalCallback ) {
431431 Logger . log ( " Adding once handler for event: %@ " , type: logType, args: event)
432432
433- var handler : SocketEventHandler ? ;
434-
435- handler = SocketEventHandler ( event: event) { ( data, ack: AckEmitter ? ) in
436- self . handlers = ContiguousArray ( self . handlers. filter { $0. id != handler!. id } )
433+ let id = NSUUID ( )
434+
435+ let handler = SocketEventHandler ( event: event, id: id) { [ weak self] ( data, ack: AckEmitter ? ) in
436+ guard let this = self else { return }
437+ this. handlers = ContiguousArray ( this. handlers. filter { $0. id != id} )
437438 callback ( data, ack)
438439 }
439440
440- handlers. append ( handler! )
441+ handlers. append ( handler)
441442 }
442443
443444 /**
@@ -446,14 +447,15 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
446447 public func once( event event: String , callback: NormalCallbackObjectiveC ) {
447448 Logger . log ( " Adding once handler for event: %@ " , type: logType, args: event)
448449
449- var handler : SocketEventHandler ? ;
450-
451- handler = SocketEventHandler ( event: event) { ( data, ack: AckEmitterObjectiveC ? ) in
452- self . handlers = ContiguousArray ( self . handlers. filter { $0. id != handler!. id } )
450+ let id = NSUUID ( )
451+
452+ let handler = SocketEventHandler ( event: event, id: id) { [ weak self] ( data, ack: AckEmitterObjectiveC ? ) in
453+ guard let this = self else { return }
454+ this. handlers = ContiguousArray ( this. handlers. filter { $0. id != id} )
453455 callback ( data, ack)
454456 }
455-
456- handlers. append ( handler! )
457+
458+ handlers. append ( handler)
457459 }
458460
459461 /**
0 commit comments