GCDAsyncSocket en Swift

Quiero abrir una conexión TCP con un dongle OBD basado en el chip ELM327. Así que he decidido usar la biblioteca GCDAsyncSocket. Escribí este código

import UIKit
import CocoaAsyncSocket

class ViewController: UIViewController, GCDAsyncSocketDelegate {

    let addr = "192.168.0.10"
    let port:UInt16 = 35000
    var socket:GCDAsyncSocket!

    override func viewDidLoad() {
        super.viewDidLoad()
        socket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
        do {
           try socket.connectToHost(addr, onPort: port)
        } catch let e {
           print(e)
        }

    // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
       // Dispose of any resources that can be recreated.
    }

    @IBAction func connect(sender: AnyObject) {
      print("Clicked")
    }

   func socket(socket : GCDAsyncSocket, didConnectToHost host:String, port p:UInt16)
   {
       print("Connected to \(addr) on port \(port).")
   }
}

pero cuando ejecuto el código, la función:

func socket(socket : GCDAsyncSocket, didConnectToHost host:String, port p:UInt16)

nunca se corre

¿Dónde está el problema?

¿Alguien puede aconsejarme sobre cómo transmitir y recibir cadenas de bytes literales?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta