2012-03-24 73 views
0

我想要一些網址硬編碼#define s。其中一些需要用戶名。我在找做以下可能性:嵌套#定義構建URL?

#define kUserName John 
#define kUserInfoURL(USERNAME) [NSURL URLWithString:@"http://a.com/USERNAME"] 

可以這樣做?

回答

2

這是可以做到,這就是所謂的字串see link):

#define kUserInfoURL(USERNAME) [NSURL URLWithString:@"http://a.com/" #USERNAME]

然而,這是隻有硬編碼的用戶名要去工作。如果你傳遞一個變量,你會得到變量的名字,而不是它的內容。 爲什麼你不創建一個方法或函數會返回相同的?

例子:


#define kBaseUrl @"http://a.com" 

- (NSURL*)createUrlForUser:(NSString*)username { 
    NSString* url = [NSString stringWithFormat:@"%@/%@", kBaseUrl, username]; 
    return [NSURL URLWithString:url]; 
} 
+0

謝謝!這爲我做了。 – Norbert 2012-03-24 19:09:24