ios – Swift中的非响应流委托

ios – Swift中的非响应流委托,第1张

概述所以我在 Swift中使用套接字并试图将应用程序与我的服务器连接起来.我让应用程序连接到服务器的IP地址,并在服务器上使用netcat进行测试.在执行期间,应用程序的控制台输出显示它已成功连接到服务器.但是,流委托似乎没有响应.当我输入netcat时,app控制台没有打印任何内容.我已经搜索了很长一段时间,发现我的实现与其他实现非常相似.也许我在这里遗漏了一些我看不到的东西. 任何想到这个问题的人 所以我在 Swift中使用套接字并试图将应用程序与我的服务器连接起来.我让应用程序连接到服务器的IP地址,并在服务器上使用netcat进行测试.在执行期间,应用程序的控制台输出显示它已成功连接到服务器.但是,流委托似乎没有响应.当我输入netcat时,app控制台没有打印任何内容.我已经搜索了很长一段时间,发现我的实现与其他实现非常相似.也许我在这里遗漏了一些我看不到的东西.

任何想到这个问题的人都将不胜感激!

代码如下:

import UIKitclass VIEwController: UIVIEwController,StreamDelegate {    let addr:String = "52.34.56.78"    let port:Int = 1234    var inputStream: inputStream?    var outputStream: OutputStream?    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        self.connect(host: addr,port: port)    }    func connect(host: String,port: Int) {        Stream.getStreamsToHost(withname: host,port: port,inputStream: &inputStream,outputStream: &outputStream)        if inputStream != nil && outputStream != nil {            inputStream!.delegate = self            outputStream!.delegate = self            inputStream!.schedule(in: RunLoop.main,forMode: RunLoopMode.defaultRunLoopMode)            outputStream!.schedule(in: RunLoop.main,forMode: RunLoopMode.defaultRunLoopMode)            inputStream!.open()            outputStream!.open()            print("successfully connected")        }        else {            print("connection unsuccessful")        }    }    func stream(aStream: Stream,handleEvent eventCode: Stream.Event) {        if aStream === inputStream {            switch eventCode {            case Stream.Event.errorOccurred:                print("input: ErrorOccurred: \(aStream.streamError?.localizedDescription)")                break            case Stream.Event.openCompleted:                print("input: OpenCompleted")                break            case Stream.Event.hasBytesAvailable:                print("input: HasBytesAvailable")                break            default:                break            }        }        else {            print("unkNown stuff happened")        }    }}
解决方法 经过大量的试验和错误后,我终于意识到stream()函数不起作用只是因为这个函数的签名不正确/过时了.

这是我正在使用的:

func stream(aStream:Stream,handleEvent eventCode:Stream.Event)

但它真的应该是:

func stream(_ aStream:Stream,handle eventCode:Stream.Event)

这可能是从以前的Swift版本到Swift 3的语法转换.XCode编译器通常会检测过时的函数/语法,但遗憾的是没有捕获到这个.

希望我的回答可以帮助那些仍然遭受这个问题的人.

总结

以上是内存溢出为你收集整理的ios – Swift中的非响应流委托全部内容,希望文章能够帮你解决ios – Swift中的非响应流委托所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存