2012-03-24 68 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