/ Demande de nouvelle tentative avec / NSURLConnection - iphone, objective-c, xcode, ipad

Nouvelle demande de nouvelle tentative NSURLConnection - iphone, objective-c, xcode, ipad

Comment puis-je demander une nouvelle tentative sur un NSURLConnection? Dans ma méthode connectionDidFinishLoading, est-il possible de stocker puis de réessayer la connexion?

J'ai regardé [connexion début], mais cela ne semble rien faire. L'objet de connexion contient-il toujours la demande d'origine?

Merci

Réponses:

6 pour la réponse № 1

Ce n'est pas indiqué explicitement, mais toujours Documentation suggère que NSURLConnection instance n'est pas destiné à être réutilisé:

NSURLConnection conserve son délégué lors de son initialisation. Il libère le délégué lorsque la connexion est terminée, échoue ou est annulée.

Si délégué est déjà libéré, il ne sert à rien de réanimer un objet connexion.


0 pour la réponse № 2

Si j'étais vous, je regarderais ASIHTTPRequest, qui est BEAUCOUP plus facile à utiliser que leNSURLConnection intégré, mais aussi beaucoup plus fonctionnel. Vous pouvez spécifier le nombre de tentatives à réessayer, le délai d'expiration en cas d'échec et, fondamentalement, tous les aspects d'une requête HTTP.


0 pour la réponse № 3

Vous pouvez résoudre ce problème en conservant l'original NSMutableURLRequest et créer à nouveau la connexion, sur Swift cela ressemble à ceci:

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>
}
}