我们的一位客户在粘贴时有时会看到这样的崩溃:
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
有谁知道可能导致这种情况的原因?
- 据我所知,粘贴板对象是有效的,但随后在内部崩溃。
- 我认为这通常是从另一个应用程序粘贴时,是否有可能另一个应用程序管理不善其对粘贴板的所有权?
来自 NSPasteboard 是否保留所有者对象的更多信息?说是的,粘贴板保留了传递给它的所有者。因此,此崩溃必须是:
- 我的代码中的过度发布。这会导致一个对象被释放,而粘贴板仍然持有对它的引用。我认为这不太可能,因为您希望问题会独立于粘贴板而出现,而且我还没有看到一个崩溃(报告)表明这一点。
NSPasteboard
管理跨应用程序粘贴的方式出现问题并崩溃。有没有人遇到过这样的事情或者知道是什么原因造成的?