C'est un message très stringWithFormat
! La première chose à vérifier est que vous obtenez une URL qui correspond à vos attentes.
Une fois que vous avez un objet et considérer la demande d'URL à l'aide d'un NSURLRequest
régulier, il devrait être plus rapide et il ne semble pas que vous avez l'intention de réutiliser cet objet:
// already autoreleased
NSURLRequest *request = [NSURLRequest requestWithURL:url];
Ensuite, vous besoin de réellement faire la demande. Il y a deux approches ici. Vous utiliserez NSURLDownload
si vous souhaitez enregistrer la demande dans un fichier. Il semble que vous cherchiez à faire une requête GET
à un serveur de messagerie quelconque, donc vous voulez probablement l'autre approche: NSURLConnection
.
NSURLConnection
est principalement destiné aux requêtes asynchrones. Vous fournissez un délégué avec certaines méthodes et votre NSURLConnection utilisera ces méthodes pour vous faire savoir quand la communication est faite; s'il y avait des erreurs;
Ajoutez une propriété à la classe de contrôleur de votre vue pour la connexion, ainsi qu'une propriété NSMutableData
. Vous commencerez votre connexion avec (en supposant que votre classe actuelle est votre délégué):
// initialize our storage for the file
self.downloadData = [NSMutableData dataWithLength:1024];
// create and start the connection
self.urlConnection = [NSURLConnection connectionWithRequest:request delegate:self];
if(nil == self.urlConnection) {
NSLog(@"Couldn't create connection to url %@", url);
}
Dans votre code quelque part, probablement votre contrôleur de vue actuel besoin vous en aurez à mettre en œuvre ces méthodes:
-(void) connection:(NSURLConnection*)connection didReceiveData:(NSData*)data {
// if you have more than one NSURLConnection in this class, test against the
// connection parameter
[downloadData appendData:data];
}
-(void) connectionDidFinishLoading:(NSURLConnection*)connection {
// download completed successfully, we can do what we like with the downloadData object now
// ...
}
-(void) connection:(NSURLConnection*)connection didFailWithError:(NSError*)error {
// handle failure with the grace of Audrey Hepburn. probably log something, too
}
Peut vouloir nettoyer le paramètre URLWithString en utilisant stringWithFormat –