Ios 无法强制转换类型为';NSURL';至';SocketIO.SocketManagerSpec
我在Swift 4中使用了Ios 无法强制转换类型为';NSURL';至';SocketIO.SocketManagerSpec,ios,socket.io,swift4,Ios,Socket.io,Swift4,我在Swift 4中使用了socket,但在线路上出现了此错误 let url = URL(string: SOCKET_URL) let nsp = "log=\(true),forcePolling=\(true)" self.socket = SocketIOClient(manager: url! as! SocketManagerSpec,nsp:nsp) self.socket?.connect() socket?.on(clientE
socket
,但在线路上出现了此错误
let url = URL(string: SOCKET_URL)
let nsp = "log=\(true),forcePolling=\(true)"
self.socket = SocketIOClient(manager: url! as! SocketManagerSpec,nsp:nsp)
self.socket?.connect()
socket?.on(clientEvent: .connect) {data, ack in
print("socket connected")
}
socket?.on("currentAmount") {data, ack in
guard let cur = data[0] as? Double else { return }
self.socket?.emitWithAck("canUpdate", cur).timingOut(after: 0){data in
self.socket?.emit("update", ["amount": cur + 2.50])
}
ack.with("Got your currentAmount", "dude")
}
socket?.connect()
}
请帮帮我,过去两天我一直在这个问题上挣扎。
谢谢我想你不需要把
URL
转换成SocketManagerSpec
请更换线路:
self.socket = SocketIOClient(manager: url! as! SocketManagerSpec,nsp:nsp)
self.socket = SocketIOClient(manager: url! as! SocketManagerSpec,nsp:nsp)
与
希望您的问题能得到解决。我们不能像通常处理任何对象那样直接将SocketManagerSpec对象化。所以,为了创建套接字,我们需要创建管理器,然后我们需要创建具有名称空间的套接字 因此,替换 与
当我使用它时,在第一行显示“self.socket=SocketIOClient(socketURL:url)”错误-“调用中缺少参数“nsp”的参数”。在第二行“self.socket?.nsp=nsp”错误-“无法分配给属性:'nsp'是一个'let'常量”@Litle Dev“无法分配给属性:'nsp'是一个'let'常量”表示
socket
是您的let
常量,但我必须是var
变量我已经这样做了,但仍然显示错误,第一行错误怎么办?它没有解决。然后,请检查您的代码,并在解决方案中添加一些说明。我们不能像通常对任何对象那样直接创建SocketManagerSpec对象。所以,为了创建套接字,我们需要创建管理器,然后我们需要创建具有名称空间的套接字。
self.socket = SocketIOClient(manager: url! as! SocketManagerSpec,nsp:nsp)
let manager = SocketManager(socketURL: URL(string:"http://192.x.x.x:3000")!)
var defaultNamespaceSocket : SocketIOClient!
var socket : SocketIOClient!
defaultNamespaceSocket = manager.defaultSocket
socket = manager.socket(forNamespace: "/swift")