苹果在iOS7推出的JavaScriptCore框架可以方便的完成OC和JS之间的交互,本篇文章主要研究一下JavaScriptCore框架的使用.

总是要来张图片的
在JavaScriptCore.h文件中,包含下列五个头文件.
#import "JSContext.h"
#import "JSValue.h"
#import "JSManagedValue.h"
#import "JSVirtualMachine.h"
#import "JSExport.h"
JSContext:JavaScript运行需要的环境,所有的JavaScript执行都需要一个JSContext, 所有的JSValue都被绑定到一个JSContext上.官方文档
JSValue:JSValue对象是对JavaScript值的引用,可以使用JSValue转换JavaScript和Objective-C类型(如将OC的NSString类型转换为JavaScript中的String类型),还可以使用JSValue创建被Objective-C包装过的JavaScript对象.官方文档
JSManagedValue:JavaScript和Objective-C的内存辅助管理对象,JavaScript的内存管理是垃圾回收机制,而Objective-C的内存管理是引用计数机制,如果二者相互引用就会导致循环引用造成内存泄露问题,JSManagedValue可以帮助垃圾回收机制和引用计数机制两种内存管理方式之间进行切换.官方文档
JSVirtualMachine:JavaScript运行的虚拟机,这个类的两个主要作用是支持并发的JavaScript和管理JavaScript与Objective-C之间桥接的对象内存.官方文档
JSExport:一个协议,将Objective-C类以及它的实例方法、类方法和属性转换为JavaScript代码.官方文档