处理按键事件时 NSTextField 泄漏

2024-03-09

我是这个论坛的新手,我已经搜索过,但没有找到这个问题的任何答案,这个问题在本周的大部分时间里一直困扰着我。

每次按下按键时 NSTextField 都会导致内存泄漏。

我已将这个问题从我的代码中分离出来,并且可以按如下方式重现:

  • 创建一个新的“Cocoa 应用程序”项目。
  • 在主菜单 xib 窗口中放置一个 NSTextfield。 (无约束力、出口或行动)
  • Product -> Profile,选择“内存泄漏”工具(在 XCode 4 中)

在用户在文本字段中输入字符之前不会发生泄漏。 我得到了 8 个泄露的 32 字节 NSCFString 对象,其类型如下:



Library     Responsible Caller
0     CFString     Malloc     00:11.524.538     1     0x100130bb0     32     AppKit     -[NSEvent charactersIgnoringModifiers]
1     CFString     Malloc     00:11.622.145     1     0x100136950     32     AppKit     -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
  

请注意,该项目除了自动生成的内容之外没有任何代码。

如果其他人可以重现这个问题,甚至可能提供如何防止它发生的建议,我会很感兴趣。

OS X 10.6.8 和 XCode 4.0.2(3.2.6 也会出现同样的问题)

任何建议将不胜感激,并将减少我目前的挫败感。

Update:

尝试在不同的 Mac 上创建上述项目。 发现其中之一没有产生泄漏(使用与上面相同的步骤创建项目) 在从未安装过 XCode 的 Mac 上安装了 XCode 4 - 没有泄漏!

  • 使用以下过程在相当新的 MB Pro 上卸载 Xcode 3.2.6:http://macdevelopertips.com/xcode/how-to-uninstall-xcode.html http://macdevelopertips.com/xcode/how-to-uninstall-xcode.html
  • 重新安装XCode4

仍然泄漏内存。

  • 在同一台 MPro 上擦除硬盘,安装 OS X 10.6,软件更新至 10.6.8
  • 安装XCode4
  • 创建与上面相同的测试项目

没有内存泄漏!!!!

现在很明显,这个问题的根源在于安装中的某个地方,而不仅仅是仪器的“误报”。我的配置文件运行被执行了多次,因此存在一次性行为,并且该行为在我的 Mac 上 100% 可重现。

现在的问题:我还有一台 27 英寸 iMac,无法选择硬盘擦除。 我猜想安装的某些东西(框架?)在升级或重新安装 XCode 时不会更新/删除。

非常感谢您对此问题原因的想法。


这几乎肯定是误报。 Leaks 工具并非万无一失,它可能会在某些情况并非如此时将其标记为泄漏(单例是一个常见的例子),请参阅我对这个问题的回答 https://stackoverflow.com/questions/6987150/why-is-nsopenpanel-nssavepanel-showing-memory-leak/6990304#6990304.

我怀疑这里看到的是字段编辑器的创建,它为每个包含至少一个文本字段单元格的窗口创建一次。它是延迟创建的,因此仅在需要时(即开始文本编辑时)才会实例化。然后,它会重新用于该窗口中的所有文本字段编辑,并且在窗口消失之前不会释放。这正是可能在泄漏工具中触发误报的行为。

常见的对象如NSTextField are 极其不太可能出现严重的内存泄漏。它们已经过非常彻底的测试,并且在操作系统版本之间没有太大变化(如果有的话)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理按键事件时 NSTextField 泄漏 的相关文章

  • UNIX/MacOS 上静态文件的“临时 Web 服务器”?

    是否有一个像小型网络服务器这样的东西 我可以从命令行调用它 只从本地文件系统获取文件并通过特定端口上的 HTTP 为它们提供服务 我希望能够做这样的事情 cd Sites mysite serve 10 0 1 1 8080 这应该会启动一
  • 与 Objective-C 的 VPN 连接

    有没有办法在 iPhone 的 Objective C 中以编程方式建立 VPN 连接 有这方面的好教程吗 有人知道吗 多谢 我认为第三方应用程序无法访问这些 API
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 如何为图层阴影不透明度设置动画?

    我有一个视图 我已将 LayerOpacity 设置为 1 theView layer shadowOpacity 1 0 当视图位于屏幕下方时 这看起来很好 当我将此视图向上移动以与另一个有阴影的视图齐平时 它们看起来不太好 有没有办法让
  • Objective C 中类别是如何实现的?

    作为一名程序员 我知道如何使用类别 但我很好奇它们是如何实现的 编译器是否将它们编译为对类替换方法 http developer apple com library mac documentation Cocoa Reference Obj
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • 如何为 Nslocal 通知设置自定义重复间隔......?

    我是 iphone 开发新手 我正在尝试在我的项目中使用 NslocalNotification 我需要每 2 小时或每两天或每两个月等给出提醒 目前我正在使用 NslocalNotification 重复间隔 但它仅适用于使用 Ncale
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安
  • 在故事板中将 UITableView 的 rowHeight 设置为 UITableViewAutomaticDimension ?

    在 Xcode 6 中创建 iOS 8 应用程序时 如何设置 UITableViewrowHeight to UITableViewAutomaticDimension In WWDC 2014 第 226 场会议 表和集合视图中的新增功能
  • 如何清除代码中的 NSLog 输出?

    有没有办法清除代码中的控制台输出 thanks 我喜欢的快捷方式 Simply USE K Keyboard Shortcut when you want to clear the NSLOG Data
  • 如何去掉 UIWebView 上的状态栏背景?

    从 iOS 11 开始 当UIWebView全屏时 状态栏上会出现与屏幕颜色相同的假背景UIWebView背景 有人知道如何摆脱它吗 甚至添加IUWebView到故事板并使其全屏将使状态栏背景出现 我一直在尝试编辑 UIWebView 的大
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • 如何解决malloc_error_break?

    我在 iOS 3 0 模拟器上遇到此错误 但在 3 1 3 和 3 2 模拟器上没有遇到此错误 创建符号断点后malloc error break 我在日志中看到了这一点 Session started at 2010 02 13 19 1
  • 在 XCode 7.0.1 中设置 VTK 6.1

    所以 我遇到了问题VTK 可视化工具包 http www vtk org在 Mac OSX 上工作 特别是让它在XCode https developer apple com xcode 我让它工作并将在下面发布这个问题的答案 截至 201
  • iPhone/Objective-C - 呈现视图和委托时的 UIDocumentInteractionController 类参考

    我在用UIDocumentInteractionController在我的应用程序中 以便在我的应用程序中呈现 Instagram 过滤器屏幕 如下所述 http instagram com developer iphone hooks h
  • Java Swing For mac 中的 DJ Native Swing 浏览器

    我有一个用 Swing 制作的 Java 应用程序 并且使用了一个 DJ Native Swing 浏览器 当我尝试在 OS X 上使用它时 它抛出了一个NoClassDefFoundError尽管我添加了 swt jar 但始终如此 有人
  • 从 python 检测 macOS 中的暗模式

    我正在编写一个 PyQt 应用程序 我必须添加一个补丁 以便在启用暗模式的 Macos 上可以读取字体 app QApplication Fix for the font colours on macos when running dark

随机推荐