美文网首页iOS点点滴滴程序员
iOS定义长字符串的实用宏

iOS定义长字符串的实用宏

作者: 莫云溪 | 来源:发表于2018-10-17 08:55 被阅读17次

今天在看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,就可以看到展开的宏。

15396963641371.jpg

相关文章

网友评论

    本文标题:iOS定义长字符串的实用宏

    本文链接:https://www.haomeiwen.com/subject/vfllzftx.html