在我的 NSViewController 中,我使用 Web View ,它调用 View Controller 的方法
View Controller 在 windowScriptObject 中注册自己的键
- (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowScriptObject forFrame:(WebFrame *)frame
{
[windowScriptObject setValue:self forKey:@"CocoaApp"];
}
问题是,windowScriptObject 保留(保留强引用)值,而我的 VC 永远不会释放 如何避免这种情况(最好不要将代码逻辑移动到其他对象)?
(我相信iOS的情况是一样的)
最佳答案
在您的清理代码中(例如windowWillClose:
,调用此:
[self.webView close];
以上将清除窗口脚本对象并释放对 View Controller 的引用。
关于Cocoa webview windowScriptObject 保持强引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713301/