2010-08-04 14 views
2

J'essaie donc de récupérer des données à partir d'un flux XML provenant d'une URL. Cette URL est configurée sur une chaîne de recherche que l'utilisateur saisit. Y a-t-il une raison pour laquelle ce code ne devrait pas fonctionner?NSString et NSUrl ne convertissent pas correctement

NSString *searchString = "Geoff"; 

NSString *updatedURL = [NSString stringWithFormat:@"http://mysearchpage.com/searchQuery=%@", searchString]; 

NSLog(updatedURL); 
NSURL *url = [[NSURL alloc] initWithString:updatedURL]; 

Maintenant, cela fonctionne très bien pour les recherches d'un seul mot, mais dès que je tente et cherche comme un prénom et le nom, le retour d'URL nulle chaque fois. Y at-il un comportement avec les chaînes qui peuvent causer cela?

J'ai même essayé de remplacer les "" par "% 20" lorsque la chaîne de recherche a été ajoutée pour voir si c'était le problème. Je l'ai fait en utilisant:

NSURL *url = [[NSURL alloc] initWithString:[updatedURL stringByReplacingOccurrencesOfString:@" " withString:@"%%20"]]; 

des idées? Merci d'avance!

+0

Je vais supposer que le manque "n'était pas votre problème, donc je l'ai ajouté –

Répondre

11

Vous devez utiliser la méthode -stringByAddingPercentEscapesUsingEncoding: de NSString pour que:

NSURL *url = [[NSURL alloc] initWithString: 
    [updatedURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 
+0

Cela a fait l'affaire.Merci pour la réponse rapide! – gabaum10

0

Si tel est une copie & pâte de votre code, il est peut-être parce que le searchString manque le @ --sign. Cela devrait être NSString *searchString = @"Geoff";

+0

Non ce n'est pas un copier-coller, je J'ai simplifié l'URL pour que ce soit plus facile à comprendre, je me rends compte qu'il manque beaucoup de choses. – gabaum10