#define宏不接受变量值

时间:2012-01-16 09:20:08

标签: objective-c ios xcode

我在项目的#define文件中创建了pch语句,因此可以在项目的所有文件中看到它,语句为:#define MYURL(x,y) @"http://internal-sps/providers.aspx?category=(a)&regionID=(y)"

但是,我在项目内的任何文件中使用此宏,如下所示:

NSString *url = MYURL(@"category1",@"3");

然后NSLog(@"%@", url);控制台显示:

http://internal-sps/providers.aspx?category=(a)&regionID=(y)不是实际值。

如何获取此宏的实际值?

1 个答案:

答案 0 :(得分:3)

变化:

#define MYURL(x,y) @"http://internal-sps/providers.aspx?category=(a)&regionID=(y)"

为:

#define MYURL(x,y) "http://internal-sps/providers.aspx?category=(a)&regionID=("y")"

并像这样使用你的宏:

NSString *url = @MYURL("category1","3");


注意:如果a实际上是x,那么它将是:

#define MYURL(x,y) "http://internal-sps/providers.aspx?category=("x")&regionID=("y")"