2010-10-20 10 views
2

je l'NSString suivante:NSString n'apparaît pas correctement

NSString* searchURL = [NSString stringWithFormat:@"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%@%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=",symbol]; 
    NSLog(@"URL IS: %@", searchURL); 

On dirait que le% 22 n'est pas inclus lorsqu'il est en cours d'impression:

URL IS: http://query.yahooapis.com/v1/public/yql?q=select220from2ahoo.finance.quotes2here    `º≠ymbol    [email protected]&format=json&env=http0X1.8CFB8P-1023-1.9907460.000000datatables.org-1.990746alltables.env&callback= 

Comment puis-je assurer que le% 22 est inclus dans ma chaîne?

Répondre

7

Si vous voulez Tout comme dans printf inclure un signe "%" dans une utilisation de chaîne de format "%%"

et al.

Lire la documentation complète de stringWithFormat pour éviter d'autres mauvaises surprises ...

2

% est un caractère spécial dans les chaînes de format. Utilisez %% pour échapper les signes de pourcentage littéraux.

0

Les caractères% sont utilisés dans l'espace de codage de la formation d'URL. Si vous souhaitez demander une URL, vous devez encoder cela avec stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding . Donc, les signes% qui apparaissent sont la forme codée de l'espace.Pour mettre en œuvre en conséquence en effaçant cette fondamentale