我想知道有什么方法可以NSAutoreleasePool
通过视图使用(就像我们在文件中定义一些东西,.h
在dealloc
.m 文件的 dealloc 方法中定义它们一样)。
可能吗?
问问题
124 次
2 回答
1
不,不应该这样做。
来自 Apple 的自动释放池文档:
自动释放池应始终在创建它的同一上下文(例如方法或函数的调用,或循环体)中耗尽。
和下一段
自动释放池“内联”使用。通常没有理由让自动释放池成为对象的实例变量。
于 2011-09-14T07:41:04.623 回答
0
你当然可以。我不确定这在您的情况下是否有意义,因此您必须对此进行分析,但是如果您愿意:
在 .h 文件中
@interface MyView : UIView
{
NSAutoReleasePool *pool;
}
// rest of view
在 .m 文件中:
@implementation MyView
- (id) initXYZ // whatever initializer you have...
{
self = [super init...];
if (self)
{
pool = [[NSAutoReleasePool alloc] init];
// rest of initialization
}
return self;
}
- (void) dealloc
{
// rest of dealloc
[pool drain];
[super dealloc];
}
正如我所说,我不确定这是否有意义,除非您在视图中分配大量小对象。
于 2011-09-14T07:29:27.837 回答