我使用SIOSocket连接到NodeJs,这是我的代码
SIOSocket.socketWithHost(“XXXXXXXXXX”,回复:{
中的(socket:SIOSocket!)self.socket = socket; self.socket.on("move", callback: { (args:SIOParameterArray) in println("aaa") })
})
但行中有错误
self.socket.on("move", callback: { (args:SIOParameterArray) in
'[AnyObject]!' is not a subtype of 'SIOParameterArray'
答案 0 :(得分:0)
回调参数是可选SIOParameterArray
,而不是SIOParameterArray
。
所以你需要写
self.socket.on("move", callback: { (args:SIOParameterArray!) in
如果你想要打开包装或
self.socket.on("move", callback: { (args:SIOParameterArray?) in
如果你想要自己的
答案 1 :(得分:0)
SIOParameterArray
只是NSArray
的别名。
所以,这个Objective-C定义:
typedef NSArray SIOParameterArray
@interface SIOSocket : NSObject
- (void)on:(NSString *)event callback:(void (^)(SIOParameterArray *args))function;
@end
与:
相同@interface SIOSocket : NSObject
- (void)on:(NSString *)event callback:(void (^)(NSArray *args))function;
@end
它被翻译为Swift:
class SIOSocket : NSObject {
func on(event: String!, callback function: (([AnyObject]!) -> Void)!)
}
因此,您可以使用[AnyObject]!
编译器说:
SIOSocket.socketWithHost("XXXXXXXXXX", response: { (socket:SIOSocket!) in
self.socket = socket;
self.socket.on("move", callback: { (args:[AnyObject]!) in
println("aaa")
})
})