用于重新发生字符串替换的宏

时间:2012-05-03 16:24:54

标签: ios objective-c macros c-preprocessor

我想要一个我可以这样使用的宏:

CREATE_URL(@"{SOME-TOKEN}/some/url/path");

宏应该将我的令牌模拟替换为以下调用:

NSString *initialURL = @"{SOME-TOKEN}/some/url/path";
[initialURL stringByReplacingOccurencesOfString:@"{SOME-TOKEN}" withString:@"http://server.com"]

所以我已经像这样定义了我的宏,不幸的是它不起作用:

#define CREATE_URL(url) [##url stringByReplacingOccurencesOfString:@"{SOME-TOKEN}" withString:@"http://server.com"];

使用宏时出现两个错误:

Missing '[' at start of message send expression
Pasting formed '[@', an invalid preprocessing token

1 个答案:

答案 0 :(得分:4)

为什么不呢?

#define CREATE_URL(url) [url stringByReplacingOccurencesOfString:@"{SOME-TOKEN}" withString:@"http://server.com"]

它应该工作正常...为什么##和;?