Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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 检查是否调用了委托方法_Ios_Swift_Sockets_Nsstream - Fatal编程技术网

Ios 检查是否调用了委托方法

Ios 检查是否调用了委托方法,ios,swift,sockets,nsstream,Ios,Swift,Sockets,Nsstream,我有以下连接到TCP套接字的功能(Raspberry Pi上的服务器,我通过接入点直接连接到该服务器) 当我连接到Raspberry Pi的Wifi热点时,会调用以下委托方法,我可以开始写入数据: func stream(_ aStream: Stream, handle eventCode: Stream.Event) { if aStream === inputStream { switch eventCode { case Stream.Event.

我有以下连接到TCP套接字的功能(Raspberry Pi上的服务器,我通过接入点直接连接到该服务器)

当我连接到Raspberry Pi的Wifi热点时,会调用以下委托方法,我可以开始写入数据:

func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
    if aStream === inputStream {
        switch eventCode {
        case Stream.Event.errorOccurred:
            print("input: ErrorOccurred: \(aStream.streamError?.localizedDescription)")
            self.Label.text = "Disconnected"
        case Stream.Event.openCompleted:
            print("input: OpenCompleted")
        case Stream.Event.hasBytesAvailable:
            print("input: HasBytesAvailable")
            // Here you can `read()` from `inputStream`

        default:
            break
        }
    }
    else if aStream === outputStream {
        switch eventCode {
        case Stream.Event.errorOccurred:
            print("output: ErrorOccurred: \(aStream.streamError?.localizedDescription)")
            self.Label.text = "Disconnected"
        case Stream.Event.openCompleted:
            print("output: OpenCompleted")
        case Stream.Event.hasSpaceAvailable:
            // print("output: HasSpaceAvailable")
            // Here you can write() to `outputStream`
            self.write(f: l)
            self.write(f: r)
        default:
            break
        }
    }
}
但当我连接到另一个WiFi时,不会调用此方法。
如何检测此方法未被调用,以便提醒用户他未连接,应该再次尝试连接?

如何检测?我假设print/alertcontroller/assert不起作用?编写一些代码,检测是否调用了stream()方法,如果没有调用,我想使用警报通知用户他连接到了错误的服务器network@DanielGretzke使用断点。检测是否调用了方法很容易:放置一个打印、消息、断点,或者,在方法定义的开始处。检测何时不调用方法仍然取决于上下文:代码中调用的流方法在哪里?它是否位于具有完成和错误处理程序的块中?因为这是您可能需要添加代码的地方,而不是方法本身。能否显示实际调用委托方法的代码?在StreamDelegate中调用流(:handle:)。但我找不到在流(:handle:)方法未被调用时调用的错误处理程序
func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
    if aStream === inputStream {
        switch eventCode {
        case Stream.Event.errorOccurred:
            print("input: ErrorOccurred: \(aStream.streamError?.localizedDescription)")
            self.Label.text = "Disconnected"
        case Stream.Event.openCompleted:
            print("input: OpenCompleted")
        case Stream.Event.hasBytesAvailable:
            print("input: HasBytesAvailable")
            // Here you can `read()` from `inputStream`

        default:
            break
        }
    }
    else if aStream === outputStream {
        switch eventCode {
        case Stream.Event.errorOccurred:
            print("output: ErrorOccurred: \(aStream.streamError?.localizedDescription)")
            self.Label.text = "Disconnected"
        case Stream.Event.openCompleted:
            print("output: OpenCompleted")
        case Stream.Event.hasSpaceAvailable:
            // print("output: HasSpaceAvailable")
            // Here you can write() to `outputStream`
            self.write(f: l)
            self.write(f: r)
        default:
            break
        }
    }
}