如何在Objective-C中拦截Core Foundation对象的取消分配回调

How to intercept deallocate callbacks of Core Foundation objects in Objective-C

我正在为AppKit和Foundation编写一个Eiffelpackage器,我需要劫持所有-dealloc方法。

由于Objective-C具有动态特性,因此很容易做到这一点。但是问题在于它仅适用于某些Foundation或AppKit对象。某些对象(例如NSString,NSArray,NSDate等)实际上是CF对象,因此不会调用dealloc方法。而是调用分配CF对象的分配器的deallocate回调。有没有办法拦截呢?


这不是一个参考,而不是一个答案,但是您应该查看此页面,其中详细讨论了CF对象释放分配混乱。 http://mikeash.com/pyblog/friday-qa-2010-07-30-zeroing-weak-references-to-corefoundation-objects.html