苹果在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
代码.官方文档
网友评论