将对象存储在垃圾收集环境中的stl容器中

时间:2011-10-05 09:13:12

标签: objective-c garbage-collection

我有一个Mac OS X应用程序,我需要在stl容器中存储objective-c对象(作为指针)。一切正常,直到我用“支持”垃圾收集编译程序,因为我需要使用自定义框架。

问题是存储在stl容器中的所有对象都被释放了。有没有办法告诉编译器不要收集它们,我会在完成后释放它们?

这可能吗?有没有办法让一个框架使用垃圾收集而主程序没有?那也可以解决我的问题。我可以重新编译框架,但它很大程度上依赖于GC。

1 个答案:

答案 0 :(得分:1)

您可以使用NSGarbageCollector的{​​{3}}方法禁用单个对象的垃圾回收。它会一直闲逛,直到你打电话给-enableCollectorForPointer:

我相信(但我不完全确定)你也可以在CFRetain子类上使用CFRelease / NSObject或多或少相同的效果。