我有一个Mac OS X应用程序,我需要在stl容器中存储objective-c对象(作为指针)。一切正常,直到我用“支持”垃圾收集编译程序,因为我需要使用自定义框架。
问题是存储在stl容器中的所有对象都被释放了。有没有办法告诉编译器不要收集它们,我会在完成后释放它们?
这可能吗?有没有办法让一个框架使用垃圾收集而主程序没有?那也可以解决我的问题。我可以重新编译框架,但它很大程度上依赖于GC。
答案 0 :(得分:1)
您可以使用NSGarbageCollector
的{{3}}方法禁用单个对象的垃圾回收。它会一直闲逛,直到你打电话给-enableCollectorForPointer:
。
我相信(但我不完全确定)你也可以在CFRetain
子类上使用CFRelease
/ NSObject
或多或少相同的效果。