【问题标题】:Incorrect argument in SocketIOClient socket.io swiftSocketIOClient socket.io swift 中的参数不正确
【发布时间】:2020-02-20 17:30:26
【问题描述】:

我正在尝试移植一个基于 socket.io 的旧应用程序,该应用程序曾经可以工作。 我正在使用 swift 4 编译并使用 socket.io 的 13.4.0 版本(v14 之前的最后一个需要客户端的最低版本是 Swift 4.2)。 我使用了 socket.io GitHub 自述文件中的示例,可用于this branch,即:

let socket = SocketIOClient(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .forcePolling(true)])

当我尝试使用 Xcode 11.3.1 进行编译时,出现以下错误: Incorrect argument labels in call (have 'socketURL:config:', expected 'manager:nsp:') 建议通过将 'socketURL: URL(string: "http://localhost:8080")!, config' 替换为 'manager: URL(string: "http://localhost:8080")!, nsp' 来修复它。如果我选择这种方式,这与自述文件中建议的方式不同,我会出现这个新错误:Argument type 'URL' does not conform to expected type 'SocketManagerSpec'

知道我做错了什么以及如何解决吗?

感谢您的帮助。

【问题讨论】:

  • 不要只阅读自述文件。找到该方法的声明,以及它的其他子声明(例如SocketIOClientCOnfiguration)尝试:let socket = SocketIOClient(socketURL: URL(string: "http://localhost:8080")!, config: SocketIOClientConfiguration.init(arrayLiteral: [.log(true), .forcePolling(true)]))?

标签: ios swift sockets socket.io


【解决方案1】:

您使用的初始化程序不适用于 SocketIOClient,而是 SocketManager

所以你可以在Socket.IO-Client-Swift repo

let manager = SocketManager(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .forcePolling(true)])
let socket = manager.defaultSocket

【讨论】:

    猜你喜欢
    • 2020-11-27
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多