/ / NSURLConnection solicitação de nova tentativa - iphone, objetivo-c, xcode, ipad

Pedido de repetição da NSURLConnection - iphone, objective-c, xcode, ipad

Como posso solicitar uma nova tentativa em um NSURLConnection? no meu método connectionDidFinishLoading é possível armazenar e tentar a conexão novamente?

Eu olhei para [início da conexão], mas isso não parecia fazer nada. O objeto de conexão ainda contém a solicitação original?

obrigado

Respostas:

6 para resposta № 1

Não é declarado explicitamente, mas ainda assim documentação sugere que NSURLConnection a instância não se destina a ser reutilizada:

NSURLConnection retém seu delegado quando é inicializado. Ele libera o delegado quando a conexão termina de carregar, falha ou é cancelada.

Se o delegado já foi liberado, não há realmente nenhum ponto em reanimar o objeto de conexão.


0 para resposta № 2

Se eu fosse você, eu olharia para ASIHTTPRequest, que é MUITO mais fácil de usar do que oembutido NSURLConnection business, mas também muito mais featureful. Você pode especificar o número de vezes para tentar novamente, o tempo limite da falha e basicamente todos os aspectos de uma solicitação HTTP.


0 para resposta № 3

Você pode resolver isso mantendo o original NSMutableURLRequest objeto e criando a conexão novamente, no Swift é parecido com isto:

class MyConnectionHandler {
var request:NSMutableURLRequest?
var connection: NSURLConnection?
var retryCount=0
var maxRetries=2

...
functions to setup the request object, and create a connection
----

func connection(connection: NSURLConnection, didFailWithError error: NSError) {
if(retryCount<maxRetries) {
retryCount++
self.connection=NSURLConnection(request: request!, delegate: self, startImmediately: true)
} else {
<throw a tantrum>
}
}