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

如何將字符串轉換爲URL格式?如何將宏NSString轉換爲NSURL

+0

是否需要轉換爲NSUrl? – 2014-08-31 09:47:10

+0

@EmelElias是的,我想插入%@文字值到字符串 – 2014-08-31 09:53:15

+0

爲什麼或爲什麼它必須是一個宏? – Sulthan 2014-08-31 10:32:25

回答

1

定義這些宏

#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_]] 

使用

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

輸出:

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

這是一個很好的答案,但是將這些東西寫入互聯網是違揹我的判斷的,因爲有些人可能真的開始以這種方式使用宏... :) – Sulthan 2014-08-31 11:58:12

0

我會考慮只產生一個純粹的輔助函數,你不必關注以及如何使用URL路徑在整個代碼庫中構建正確的URL。

// .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]]; 
}