当JSExport 遇见 class_addProtocol
通过上面那篇文章,我们已经大致了解了 JavaScriptCore的基础功能。下面我们想象一个这样的场景:
如果,我需要在JS中设置某个UIView的backgroundColor,那么我可以总么做呢?我们知道以下两点:
通过创建继承于 JSExport 的协议,可以让Oc暴漏给JS使用。
通过 Runtime 的 class_addProtocol,我们可以给已经存在类添加协议。
这样,我们是不是可以给UIView动态添加继承于 JSExport 的协议,协议里包含backgroundColor属性的setter和getter方法。是不是JS中就可以调用了呢?
代码如下:
1 |
|