每个对象一个AutoreleasePool?
我不能在
main()
中有一个“大”NSAutoreleasePool
- 我不允许触摸它。那么每个对象有一个池是什么意思呢?
struct MacGuiEngine
{
// members …
ScopedAutoreleasePool pool;
};
struct MacFontEngine
{
// members …
ScopedAutoreleasePool pool;
};
这是一个有效的“模式”吗?
没有找到相关结果
已邀请:
1 个回复
泉秘胁
时,你什么时候打电话给
?我假设这是iOS,因为您不需要在Mac上的
中创建自动释放池。无论你在哪里打电话
都是你想要的顶级自动释放池。 请记住,每个事件循环都会自动为您创建一个自动释放池,因此您通常不需要创建一个。我最初的实验是在iPad上从
中删除它至少不会导致任何泄漏。您可以通过在
上设置断点来查找。唯一的问题是在事件循环之前调用的方法。我相信如果应用程序委托是以编程方式生成的,那么它可以在事件循环之前调用它。但即使在app delegate的
中制作自动释放的对象也不会对我造成任何泄漏。 如果有任何地方你需要一个自动释放池(其中
被调用,你会看到类似“没有池自动释放的对象 - 只是泄漏”),那么你只需要在该方法中创建一个池:
但是我仍然有点不知道你是如何开始主要的runloop,但是无法创建自动释放池。