【问题标题】:Opening url with Cocoa button causes memory leak使用 Cocoa 按钮打开 url 会导致内存泄漏
【发布时间】:2012-06-27 15:39:57
【问题描述】:

我的 Cocoa 应用程序中有一个按钮,可以在 Web 浏览器中打开一个 url。如果按下按钮时浏览器未打开,则出现内存泄漏。如果浏览器已经打开,那么我不会得到内存泄漏。

按钮的代码是:

- (IBAction)goToWebsite:(id)sender {
    [[NSWorkspace sharedWorkspace] openURL: [NSURL URLWithString:@"http://www.website.com/?apiref=123"]];
}

Instruments 中描述的内存泄漏是:

Leaked Object = Malloc 2.00 KB
Number = 1
Address = 0x7f8003039600
Size = 2.00 KB
Responsible Library = libsystem_sandbox.dylib
Responsible Frame = sandbox_extension_issue

如何防止这种内存泄漏?

这是我第一次测试应用程序是否存在泄漏,因此我们将不胜感激任何有关此问题的帮助。我正在使用 Xcode 4.3.3 和 OSX 10.7.4

【问题讨论】:

  • 启用应用沙盒和检查传入/传出网络连接是否可以防止泄漏发生?

标签: objective-c cocoa memory-leaks nsworkspace


【解决方案1】:

除了将它作为一个 bug 提交给苹果之外,你真的无能为力

【讨论】:

  • 这是一个错误还是我的程序有问题?我有一种感觉,我没有正确地沙盒化我的应用程序。
  • 那么您有没有在控制台应用中查看您是否违反了沙盒?
  • 沙盒不允许使用 Safari 吗?
  • 要求NSWorkspace 打开这样的 URL 对于沙盒应用来说是完全可以接受的。
  • 是的,我同意。该应用程序已在应用程序商店中被接受,因此显然它是沙盒应用程序的可接受方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 2021-03-23
  • 2021-09-25
相关资源
最近更新 更多