iOS定义长字符串的实用宏

今天在看WebViewJavascriptBridge源码的时候发现一个神奇的宏,在定义较长字符串时很实用。
举个例子,将一段js代码存到一个变量,为了便于阅读需要加入换行,需要在每行结束加上\

NSString *str = @"function() { \
    if (window.WebViewJavascriptBridge) { \
        return; \
    } \
})(); \
    ";

这时,可以用宏来优化。

#define LONG_STRING_DEFINE(x) #x
NSString *str = @LONG_STRING_DEFINE(function() {
    if (window.WebViewJavascriptBridge) {
        return;
    }
})();
    );

宏展开后代码如下

NSString *str = @";(function() { if (window.WebViewJavascriptBridge) { return; })();";

用Xcode看宏展开

打开Assistant Editor,选择Preproces,就可以看到展开的宏。

iOS定义长字符串的实用宏
15396963641371.jpg
上一篇:JAVAWeb开发之Servlet-18.Servlet共享变量与变量的作用域


下一篇:2018 IEEE最热门47种编程语言发榜!Python雄踞四项第一