2014-08-31 3 views
-3
#define string = @"http://rtchubs.com/Client/PhotoStreamer/SaveRating.php?RateID=%@&&Rate=%@&&Photoid=%@" 

Comment puis-je convertir la chaîne en format URL?Comment faire pour convertir la chaîne NSString en NSURL

+0

Avez-vous besoin de convertir en NSUrl ?? –

+0

@EmelElias oui, je veux insérer la valeur% @ literal dans la chaîne –

+0

pourquoi ou pourquoi il doit être une macro? – Sulthan

Répondre

1

Définir ces macros

#define STRING @"http://rtchubs.com/Client/PhotoStreamer/SaveRating.php?RateID=%@&&Rate=%@&&Photoid=%@" 
#define URL_FROM_PARAMETER(_rateId_, _rate_, _photoId_) [NSURL URLWithString:[NSString stringWithFormat:STRING, _rateId_, _rate_, _photoId_]] 

Utilisation

id rateId = @"rateid", rate = @"rate",photoId = @"photoid"; 
NSURL *url = URL_FROM_PARAMETER(rateId, rate, photoId); 
NSLog(@"%@", url); 

Sortie:

http://rtchubs.com/Client/PhotoStreamer/SaveRating.php?RateID=rateid&&Rate=rate&&Photoid=photoid 
+0

C'est une bonne réponse, mais il est contre mon meilleur jugement d'écrire de telles choses sur Internet parce que certaines personnes pourraient réellement commencer à utiliser des macros de cette façon ... :) – Sulthan

0

Je considérerais que la création d'une fonction pure d'aide et vous ne devez pas être concernés avec comment vous utilisez le chemin d'URL pour construire l'URL correcte partout dans la base de code.

// .h 
extern NSURL *TLARateURL(NSString *rateID, NSString *rate, NSString *photoID); 

// .c/m 
NSURL *TLARateURL(NSString *rateID, NSString *rate, NSString *photoID) { 
    static NSString *format = @"http://rtchubs.com/Client/PhotoStreamer/SaveRating.php?RateID=%@&&Rate=%@&&Photoid=%@"; 
    return [NSURL URLWithString:[NSString stringWithFormat:format, rateID, rate, photoID]]; 
} 
Questions connexes