iOS5: el método willSendRequestForAuthenticationChallenge se ejecuta de forma recursiva

Estoy usando el siguiente código para la autenticación del usuario con el servidor remoto. Si doy el nombre de usuario y la contraseña correctos, no hay problema porque la autenticación está ocurriendo y recibo la respuesta del servidor.

Pero cuando estoy dando credenciales incorrectas, este método se llama de manera recursiva, por lo que no puedo romper esto.

Por favor, ayúdenme, cómo romper esto para que pueda mostrar el mensaje de alerta de autenticación fallida.

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{

    NSURLCredential *credential = [NSURLCredential credentialWithUser:@"username"
                                                             password:@"password"
                                                          persistence:NSURLCredentialPersistenceForSession];
    [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];    
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta