try and avoid a bunch of as AnyObject nonsense

This commit is contained in:
Erik 2016-05-22 14:05:01 -04:00
parent 044d9c0746
commit 51ee4d3d1d
3 changed files with 22 additions and 4 deletions

View File

@ -208,8 +208,8 @@ public final class SocketIOClient : NSObject, SocketEngineClient, SocketParsable
}
/// Send a message to the server
public func emit(_ event: String, _ items: AnyObject...) {
emit(event, with: items)
public func emit(_ event: String, _ items: SocketData...) {
emit(event, with: socketDataToAnyObject(data: items))
}
/// Same as emit, but meant for Objective-C
@ -224,8 +224,8 @@ public final class SocketIOClient : NSObject, SocketEngineClient, SocketParsable
/// Sends a message to the server, requesting an ack. Use the onAck method of SocketAckHandler to add
/// an ack.
public func emitWithAck(_ event: String, _ items: AnyObject...) -> OnAckCallback {
return emitWithAck(event, with: items)
public func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback {
return emitWithAck(event, with: socketDataToAnyObject(data: items))
}
/// Same as emitWithAck, but for Objective-C

View File

@ -40,4 +40,8 @@ extension SocketIOClientSpec {
handleEvent("error", data: [reason as AnyObject], isInternalMessage: true, withAck: -1)
}
func socketDataToAnyObject(data: [SocketData]) -> [AnyObject] {
return data.flatMap({$0 as? AnyObject})
}
}

View File

@ -24,6 +24,20 @@
import Foundation
public protocol SocketData {}
extension Array : SocketData {}
extension Bool : SocketData {}
extension Dictionary : SocketData {}
extension Double : SocketData {}
extension Int : SocketData {}
extension NSArray : SocketData {}
extension NSData : SocketData {}
extension NSDictionary : SocketData {}
extension NSString : SocketData {}
extension NSNull : SocketData {}
extension String : SocketData {}
public typealias AckCallback = ([AnyObject]) -> Void
public typealias NormalCallback = ([AnyObject], SocketAckEmitter) -> Void
public typealias OnAckCallback = (timeoutAfter: UInt64, callback: AckCallback) -> Void