iPhone: detectar un error de conexión con NSStream

He escrito un programa que se conecta a un servidor en una IP determinada usando el protocolo NSStream descrito en la guía de programación de flujo de Apple. La conexión y transferencia de datos funciona sin problemas, sin embargo, si el usuario especifica la IP incorrecta y el programa intenta abrir las transmisiones, el programa deja de responder.

Por lo que he leído, el método handleEvent detecta errores de transmisión, sin embargo, cuando verifico la condición de que eventCode == NSStreamEventErrorOccurred, parece que no sucede nada. Mi código de conexión es el siguiente:

NSString *hostString = ipField.text;

    CFReadStreamRef readStream;

    CFWriteStreamRef writeStream;

    CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)hostString, 10001, &readStream, &writeStream);



    inputStream = (NSInputStream *)readStream;

    outputStream = (NSOutputStream *)writeStream;

    [inputStream setDelegate:self];

    [outputStream setDelegate:self];

    [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    [inputStream open];

    [outputStream open];

¿Alguna idea de cómo puedo especificar un valor de tiempo de espera o permitir que un botón active el cierre de las secuencias si no se puede establecer una conexión?

Respuestas a la pregunta(1)

Su respuesta a la pregunta