0

ビューを介して使用する方法があるかどうかを知りたいです(ファイルでNSAutoreleasePool何かを定義し、.mファイルのdeallocメソッドでそれらを定義するのと同じように)。 出来ますか?.hdealloc

4

2 に答える 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 に答える