ios - 宏用于重复出现的字符串替换

标签 ios objective-c macros c-preprocessor

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

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

然后,宏应将我的 token 类似物替换为以下调用:
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

最佳答案

为什么不呢?

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

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

关于ios - 宏用于重复出现的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435459/

相关文章:

ios - 如何使用 TFL Api 并获取它的 key ?

ios - NSString 二进制操作

ios - ios中uiimageView的字节数组

c++ - 语法 "ContextRegistrar_##ContextType"的含义

c++ - 宏 C/C++ 的奇怪行为

delphi - 如何在资源脚本的数据部分中使用宏?

ios - 自动滚动并在每个页面停止至少 2 秒的 UIScrollview

ios - Google ios 注册迁移到 MainTabBarController

ios - setEnabledTextCheckingTypes 无法识别的选择器发送到实例

ios - 如何在 CoreData 中使用 NSPredicate 进行排序和限制?