6 delegates ios cocoaasyncsocket swift
GCDAsyncSocket委托不在swift类中调用,但在UIViewController类中工作得很好.下面是我的自定义类代码,在这个类中,connect函数将启动套接字连接,它的委托将永远不会被调用.我在网上搜索,也在GCDAsyncSocket github repo上搜索但没有成功.
class RXSocket: NSObject,GCDAsyncSocketDelegate {
func connect() {
    let asyncSocket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
    do {
        try asyncSocket?.connectToHost("www.google.com", onPort: 80)
    } catch _ as NSError {
    }
}
//MARK:- ASyncSocket Delegate
func socket(sock: GCDAsyncSocket!, didConnectToHost host: String!, port: UInt16) {
    print("didConnectToHost")
}
func udpSocket(sock: GCDAsyncUdpSocket!, didReceiveData data: NSData!, fromAddress address: NSData!, withFilterContext filterContext: AnyObject!) {
    print("didReceiveData")
}
func socketDidDisconnect(sock: GCDAsyncSocket!, withError err: NSError!) {
    print("socketDidDisconnect")
}
}
并在我的视图控制器类
    let rxSocket = RXSocket()
    rxSocket.connect()
尝试这样:
class RXSocket: NSObject,GCDAsyncSocketDelegate {
var asyncSocket: GCDAsyncSocket!
    func connect() {
    self.asyncSocket = GCDAsyncSocket(delegate: self, delegateQueue: DispatchQueue.main)
    do {
        try asyncSocket.connect(toHost: "www.google.com", onPort: 80)
    } catch _ as NSError {
        print("Catch")
    }
    }
}
| 归档时间: | 
 | 
| 查看次数: | 747 次 | 
| 最近记录: |