我正在尝试使用GCDAsyncUdpSocket,但是在bindToPort和beginReceiving函数中遇到这些错误。

无法使用类型为参数的列表调用“ bindToPort”
'&'与类型为'()'的非inout参数一起使用

class UDPServer: NSObject, GCDAsyncUdpSocketDelegate {

   let IP = "255.255.255.255"
   let PORT:UInt16 = 2052
   var sock:GCDAsyncUdpSocket!

   override init() {
       super.init()
       setupConnection()
   }

   func setupConnection() {
       var err: NSError?
       sock = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
       sock.bindToPort(PORT, error: &err)
       sock.beginReceiving(&err)
   }
}


我在这里想念什么?

最佳答案

我使用了try / catch块和另一个签名。在较新版本的CocoaAsyncSocket中可能会更改

func setupConnection(){
        udpSocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())

        do {
            try udpSocket.bindToPort(PORT)
            try udpSocket.beginReceiving()
        } catch let err as NSError {
            err.description
        }
    }

07-28 06:27