我希望将一些网址设为硬编码#define
。其中一些需要用户名。我正在寻找以下可能性:
#define kUserName John
#define kUserInfoURL(USERNAME) [NSURL URLWithString:@"http://a.com/USERNAME"]
可以这样做吗?
答案 0 :(得分:2)
可以这样做,它叫做 stringification (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];
}