Dav*_*ler 3 cocoa cocoa-touch objective-c instruments
我有Cocoa桌面应用程序,就像许多人使用NSDates一样.现在,其中一个NSDates正在变成一个僵尸.它被用在NSUndoManager的堆栈中,所以我认为有些东西我不太了解.但这没关系,因为我打算使用Instruments来找出它被保留和释放的位置.除此之外,仪器显示出非常奇怪的行为(但我之前看过一次或两次的行为).我在http://taubler.com/zombie.png上发布了一个屏幕截图,并试图重现仪器的跟踪:
0 __NSCFDate Malloc 1 00:08.416.441 0x114a92150 16 Foundation getObjectValue
1 __NSCFDate Autorelease 00:08.416.462 0x114a92150 0 Foundation getObjectValue
2 __NSCFDate Retain 2 00:08.416.576 0x114a92150 0 Proxy -[SPTask setStart:]
3 __NSCFDate Release 1 00:09.815.661 0x114a92150 0 Foundation -[NSAutoreleasePool drain]
4 __NSCFDate Retain 2 00:10.703.345 0x114a92150 0 Proxy -[DraggingTask setOrigStart:]
5 __NSCFDate Release 1 00:10.871.257 0x114a92150 0 Proxy -[SPTask setStart:]
6 __NSCFDate Retain 2 00:11.482.473 0x114a92150 0 Foundation -[NSCFArray insertObject:atIndex:]
7 __NSCFDate Zombie -1 00:18.639.856 0x114a92150 0 Proxy -[SPTask setStart:]
Run Code Online (Sandbox Code Playgroud)
注意保留计数如何从2跳到-1.有谁知道为什么会这样?确实很难找到流氓释放......
提前致谢!