2016-11-30 4 views
0

Dieser Code funktionierte in Swift 2.2 ohne Probleme, aber nach der Aktualisierung meines Codes auf Swift 3 funktioniert es nicht mehr. Können Sie mir helfen, das Problem zu entdecken? Keine Verbindung überhaupt.Swift 3 - InputStream

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 ?? "") 
} 
+0

Das ist das Problem mit optional Verkettungs überall: Dinge still scheitern. Sie sollten die bedingte Bindung verwenden, um "inputStream" und "outputStream" auszupacken und die Fälle zu behandeln, wenn sie "null" sind. – Alexander

+0

Ich habe gerade mit bedingter Bindung versucht und ich bekomme auch keinen Fehler. Ich habe keine Ahnung, warum das nicht funktioniert. – ClaytonAV

+0

Zeigen Sie bitte Ihren aktualisierten Code – Alexander

Antwort

0

Aktualisieren Sie Ihre Delegatfunktion dieser

func stream(_ aStream: Stream, handle eventCode: Stream.Event) { 
    //code 
}