当在一个NSView检测dealloc'ed
-
19-09-2019 - |
题
是否有任何方法来检测当的NSView将dealloc'ed?
的原因是,我有一些简单的代表(例如,委托的NSTextField一个处理 - 控制:TextView的:doCommandBySelector:以允许输入的返回/ tab键)。我想只要坚持这个委托对象在笔尖,电缆铺设工作的NSTextField的委托连接,它的工作。
和它的工作,但它与被释放连的NSTextField后委托永远不会释放,所以委托对象泄漏。
我想委托对象能够检测时的NSTextField是dealloc'ed,但我想不出任何办法做到这一点,这让我不得不存储在不同的链接委托对象从一些其他的控制器和在某些点比理想的非常少得多手动松开。任何想法?
解决方案
我有一个很好看此之前,有没有出现任何的方式,当一个对象被释放来观察。我已经看到了这样做在一个弱指针类的方法,但它涉及到ISA混写,它可以变得肮脏。这里是网站: http://www.cocoadev.com/index.pl?WeakPointers一>
这是从笔尖文件创建的对象应当笔尖的所有者被释放,除非在其他地方保持被释放。例如,当一个NSWindowController被释放它会释放被加载的笔尖时所创建的任何对象。如果没有被释放的委托对象,也许是因为在其他地方保留,或者是有保留周期。
不隶属于 StackOverflow