Pregunta

Estoy usando un NSMutableURLRequest para conectarse a un sitio web para obtener una respuesta JSON. Estoy hacerlo mediante la generación de la solicitud y, a continuación, utilizando NSURLConnection con un delegado de uno mismo para manejar la conexión asíncrona. He implementado todos los métodos normales de delegado:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
establece en 10 segundos no parece

Todo funciona a la perfección con la obtención de datos de nuevo, que trata de los errores que se producen, etc. Sin embargo, con el tiempo de espera en la NSURLRequest que hacer para ser llamado en esos métodos (que esperaba el didFailWithError a ser llamado ). Simplemente se sienta allí para siempre y no tengo ninguna notificación de que tiempo de espera.

La lectura de los documentos de la API iPhone no veo ninguna mención de lo que debe suceder cuando se produce el tiempo de espera, al igual que se puede establecer el valor de tiempo de espera. ¿Qué debería pasar? No vi ningún otro método de delegado en la API que ayudaría. Yo no tengo que comprobar manualmente los tiempos de espera, ¿verdad? Los tiempos de espera son sólo para las solicitudes sincrónicas?

¿Fue útil?

Solución

Su tiempo de espera se recibe en este método:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

Otros consejos

u se br recibir tal tipo de iofo:

en qué falló con

  

error: Error = Código de dominio NSURLErrorDomain = -1,001 UserInfo = 0xed4870   "Tiempo de espera"

El comportamiento de tiempo de espera es un poco peculiar, ver este hilo en los foros de desarrollo de Apple.

Lo que hice fue lo siguiente:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    if (error.code == -1001){
        [self showTimeoutAlert];//My method to show dialog with timeout message.
    } else {
        [self showInvalidURLAlert];//My method to show dialog with bad URL message.
    }
}

Como se ha dicho antes -1001 es para el tiempo de espera, en otras pruebas llegué -1003 (por mala URL o no disponible conexión).

Me estaba apuntando para tratar de tiempo de espera así que cualquier otra cosa que tratar como mala URL.

Ponga algunas declaraciones de registro en cada método y comprobar lo que dan. Siempre que el tiempo de espera, que sin duda una notificación en la consola sobre el tiempo de espera. Me estoy haciendo que la notificación. Compruebe su código y si sigue teniendo problemas, háganoslo saber.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top