iOS-保留但不释放对象的JSValue

时间:2019-02-05 22:03:30

标签: javascript ios

我正在开发一个iOS代码库,该代码库具有一个保存JSContext的对象,并且还通过JSValue将对象添加到它自己的JSContext中:

JSValue *jsBridgedObject = [JSValue valueWithObject:self inContext:context];
context[@"Object"] = jsBridgedObject;

这似乎可以工作,因为valueWithObject创建了对对象的强大引用,但是由于后来我无法从上下文中释放对象,这似乎也导致了保留周期。该怎么做?

1 个答案:

答案 0 :(得分:0)

作为一个很晚的后续工作,我最终在JSContext所有者和JSContext之间创建了一个新类,就像一个桥梁。 JSContext捕获了网桥,该网桥从JavaScript代码接收回调并将其转发给所有者,后者是网桥的弱委托。