Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift无法调用类型为';WebSocket';具有类型为';(url:url)_Ios_Swift_Starscream - Fatal编程技术网

Ios Swift无法调用类型为';WebSocket';具有类型为';(url:url)

Ios Swift无法调用类型为';WebSocket';具有类型为';(url:url),ios,swift,starscream,Ios,Swift,Starscream,我在swift中有以下用于web套接字通信的代码,但是当我构建代码时,我得到了错误 代码: import Foundation import Starscream class StarscreamWebSocket: WebSocketProvider { var delegate: WebSocketProviderDelegate? private let socket: WebSocket init(url: URL) { self.s

我在swift中有以下用于web套接字通信的代码,但是当我构建代码时,我得到了错误

代码:

import Foundation
import Starscream

class StarscreamWebSocket: WebSocketProvider {

    var delegate: WebSocketProviderDelegate?
    private let socket: WebSocket
    
    init(url: URL) {
        self.socket = WebSocket(url: url)
        self.socket.delegate = self
    }
    
    func connect() {
        self.socket.connect()
    }
    
    func send(data: Data) {
        self.socket.write(data: data)
    }
}
错误:

import Foundation
import Starscream

class StarscreamWebSocket: WebSocketProvider {

    var delegate: WebSocketProviderDelegate?
    private let socket: WebSocket
    
    init(url: URL) {
        self.socket = WebSocket(url: url)
        self.socket.delegate = self
    }
    
    func connect() {
        self.socket.connect()
    }
    
    func send(data: Data) {
        self.socket.write(data: data)
    }
}
无法使用类型为“(url:url)”的参数列表调用类型为“WebSocket”的初始值设定项


可能是什么问题。

此框架的
WebSocket
类没有接受单个
URL
参数的初始值设定项。它有两个初始值设定项:

public init(request: URLRequest, engine: Engine)
public convenience init(request: URLRequest, certPinner: CertificatePinning? = FoundationSecurity(), compressionHandler: CompressionHandler? = nil, useCustomEngine: Bool = true)
你似乎想用第二个。只需使用
URL

let request = URLRequest(url: url)
self.socket = WebSocket(request: request )

实际上,我是在使用这里的代码。作者可能为
WebSocket
编写了一个小扩展,并添加了一个初始值设定器,该初始值设定器采用
URL
,以方便使用。感谢您的反馈,我是swift新手,可能我的代码中缺少了一些内容。但在本例中,只有一个参数传递了此链接,已经过时。当您查看库的存储库时,您可以看到它以前在分支
swift4
上有一个带有
URL
参数的初始值设定项,但后来它被删除了。库的
README.md
中的示例使用
URLRequest
,而不是
URL