跳过正文
  1. Posts/

一个定义长字符串的实用宏

··1 分钟

2018.10.16

今天在看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定义长字符串的实用宏

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

应对iOS隐私政策三步曲

··1 分钟
2018.10.12 国庆假期回来准备提交新版本到App Store,遇到苹果新政策,实测下来影响不大,应对还算比较简单,总结一下分享给大家。 政策说明 # 从2018年10月3号起,所有新提交的App都必须提供隐私条例,官方连接。

记“香蕉播放器”上架的辛酸历程

·3 分钟
2018.10.7 写在前面 # 先说点废话,从事iOS开发以来,一直有一个目标,拥有一个自己的APP上架App Store,并且登上苹果推荐榜单,这可能是大多数iOSer的梦想。在脑子里产生了各种想法,但是发现自己能想到的别人都做了,并且做的很好,加上工作生活上的很多事情(主要是懒😝),一拖就是3年。 后来因为自己的真实需求,App Store找不到能满足需求的产品,就做了一个播放器自己用,在中秋假期狠下心来,买了开发者账号(688,心痛!!就当为了梦想充值吧。),把这个播放器上架了。

记一个行结束符引发的JS报错

··1 分钟
2018.9.5 问题描述 # 最近遇到一个神奇的Bug,通过UIWebView的stringByEvaluatingJavaScriptFromString:方法执行一段JavaScript代码时,JavaScript报错:

从一个AFNetworking循环引用说起

··3 分钟
2018.8.28 本文分析使用代码是AFNetworking 3.2.1 最近使用Instruments中的Leaks分析项目内存泄露,发现了一个AFNetworking的循环引用。如下图所示: