Cocoa webview windowScriptObject 保持强引用

标签 cocoa cocoa-touch uiwebview

在我的 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/

相关文章:

macos - 如何获得像这样的 NSWindow 标题栏样式

cocoa - 在像 tweetie 或事物首选项这样的圆形 View 中记录键盘命令

objective-c - 从 Cocoa 应用程序打开一个终端窗口到指定的文件夹

iphone - iPhone应用程序中的两个sqlite db

iOS 嵌入视频,视频在另一个 View 中仍然播放

ios - UIWebview 没有在 iFrame 中加载 youtube 视频

ios - 提交到应用商店时 Cordova "Apple will stop accepting submissions of apps that use UIWebView"警告

cocoa - NSArray NSDictionary 保留 addobject 顺序

cocoa-touch - 如何转到 UITextField 中的下一行?

ios - 我应该使用什么收集类?