cocoa - 什么可能导致 -[NSPasteboard types] 崩溃?

标签 cocoa appkit nspasteboard

我们的一位客户在粘贴时有时会遇到这样的崩溃:

0 com.apple.Foundation 0x9143bd1d readPointerAt + 9
1 com.apple.Foundation 0x9153221f empty + 43
2 com.apple.Foundation 0x9145d41f dealloc + 21
3 com.apple.Foundation 0x9145d3ce -[NSConcreteMapTable dealloc] + 35
4 com.apple.AppKit 0x9092aa5d -[_NSPasteboardOwnersCollection dealloc] + 45
5 com.apple.AppKit 0x905cdb8f _NSPasteboardReportChangedOwner + 66
6 com.apple.AppKit 0x905cd4aa -[NSPasteboard _updateTypeCacheIfNeeded] + 51
7 com.apple.AppKit 0x905cd361 -[NSPasteboard _typesAtIndex:usesPboardTypes:] + 52
8 com.apple.AppKit 0x905cd327 -[NSPasteboard types] + 50

有谁知道这可能是什么原因造成的吗?

  • 据我所知,粘贴板对象是有效的,但随后在内部崩溃了。
  • 我认为这通常发生在从另一个应用程序粘贴时,是否有可能另一个应用程序对粘贴板的所有权管理不当?

更多信息来自Does NSPasteboard retain owner objects?说是的,粘贴板保留了传递给它的所有者。因此,这次崩溃必须是:

  • 我的代码中存在过度发布。这会导致对象被释放,而粘贴板仍然保留对其的引用。我认为这不太可能,因为您希望问题独立于粘贴板而出现,而且我还没有看到任何崩溃(报告)表明这一点。
  • NSPasteboard 管理跨应用程序粘贴的方式出现问题并崩溃。有人遇到过类似的情况或者知道是什么原因造成的吗?

最佳答案

这似乎是在处理有关先前所有者的信息时(在用户最新副本设置的当前所有者之前)。也许那就是你?检查您的复制代码。

如果您还没有在 Zombies 工具下运行您的应用,也可以这样做。

关于cocoa - 什么可能导致 -[NSPasteboard types] 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836601/

相关文章:

cocoa - 从发送者应用程序获取 NSServices 信息时获取文本的位置(坐标)

iphone - 从另一个 NIB 加载带有 UITableView 的 UIView

objective-c - 如何设计具有不同宽度元素列表的界面?

c++ - 如何在 macOS 上为 Qt 窗口使用 Objective-C 变量和方法?

iphone - 编写适用于 iOS 和 Mac OS 的类

cocoa - Appkit/Quartz/CG 在自定义 View 中正确嵌套 NSTextView

macos - Mac 沙盒和临时文件

objective-c - cocoa 旋转元素在窗口调整大小后消失

swift - 如何在 NSCollectionView 中为拖放创建 NSPasteboardWriting

swift - 复制多个 NSImage 到 NSPasteboard