У меня есть приложение Cocoa для настольных компьютеров, которое, как и многие другие, использует NSDates. Прямо сейчас, одна из NSDates становится Зомби. Он используется в стеке NSUndoManager, поэтому я думаю, что есть кое-что, что я не совсем понимаю. Но это нормально, потому что я планировал использовать инструменты, чтобы выяснить, где они хранятся и выпускаются. За исключением того, что инструменты показывают очень странное поведение (но поведение, которое я видел один или два раза раньше). Я разместил скриншот на 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:]
Обратите внимание на то, как количество сохранений изменяется с 2 до -1. Кто-нибудь знает, почему это происходит? Это, конечно, затрудняет поиск мошеннического освобождения ...
Заранее спасибо!