2012-04-17 10 views
5

Me gustaría descargar con un tiempo de espera más corto, para que sea más rápido y para evitar que la aplicación falle en una mala conexión.Cómo configurar el tiempo de espera para dataWithContentsOfURL: url

- (void) CreateTitleView { 
    NSURL* url; 
    NSData* imageData; 
    imageData = [NSData dataWithContentsOfURL:url ]; 
    UIImage* image = [UIImage imageWithData:imageData]; 
} 

No soy bueno en el objetivo C, entonces pido su ayuda, para hacer esto. Gracias.

+0

¡El corto tiempo de espera no hará que su conexión sea más rápida! Pero eche un vistazo a NSURLConnection. –

Respuesta

2

No puede controlar la velocidad de descarga configurando un tiempo de espera. Eso solo controlaría cuánto tiempo esperó su aplicación antes de abandonar la descarga. Debería refactorizar su aplicación para cargar los datos de imagen en segundo plano, de modo que la UI siga siendo receptiva hasta que se complete la descarga.

Consulte NSURLConnection (sendAsynchronousRequest) o AFNetworking.

+1

Ok. Sabía que el tiempo de espera más corto no causará una descarga más rápida. ¿Qué hay de la descarga de URL inalcanzable, establecer un tiempo de espera puede al menos evitar la descarga innecesaria. Entonces, ¿cómo se puede establecer el tiempo de espera en '[NSData dataWithContentsOfURL: url]'? – Yeung

+0

@Yeung - no puedes afaik. En los casos en que necesite poder controlar la configuración de tiempo de espera para recuperar datos de una URL, use métodos de ['NSURLConnection'] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference /Foundation/Classes/NSURLConnection_Class/Reference/Reference.html) clase en su lugar. – Perception

9

En estos días, es posible. La API es así:

NSURLResponse* urlResponse; 
NSError* error; 
NSMutableURLRequest* urlRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20]; 
NSData* d = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&urlResponse error:&error]; 
Cuestiones relacionadas