【发布时间】:2016-11-30 01:24:53
【问题描述】:
这段代码在 Swift 2.2 中运行没有任何问题,但是在将我的代码更新到 Swift 3 之后它不再运行了。你们能帮我发现问题吗?完全没有联系。
var inputStream: InputStream?
var outputStream: OutputStream?
func startNetworkCommunicationWithServer(){
let myApp = UIApplication.shared.delegate as! AppDelegate
let server = myApp.myDefaultHost.ip
let port = 9090
Stream.getStreamsToHost(withName: server, port: port, inputStream: &inputStream, outputStream: &outputStream)
inputStream?.delegate = self
inputStream?.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
inputStream?.open()
outputStream?.delegate = self
outputStream?.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
outputStream?.open()
//print(inputStream?.streamStatus ?? "")
}
【问题讨论】:
-
这是随处可见的可选链接的问题:事情会默默地失败。您应该使用条件绑定来解开
inputStream和outputStream,并处理它们为nil的情况。 -
我刚刚尝试了条件绑定,我也没有收到任何错误。我不知道为什么这不起作用。
-
请显示您的更新代码