2011-12-28 4 views
1

実行ループの最後に自動解放プールが解放されます。NSRunLoopとNSAutoreleasePoolは、どのように相互作用しますか?

これは、ループの繰り返しの終了を意味しますか? これはいつですか?

タッチ、モーション、またはリモートコントロールイベントが処理されるたびに、 プールが排水されます。

アプリケーションが触れていない場合はどうなりますか?私たちは、このようなコードを使用している場合は、どのように我々は、オブジェクトがsomeMethod[self someObject]retainの間で解放されていないことを確認することができます

- (id) someObject 
{ 
    return [[[SomeClass alloc] init] autorelease]; 
} 

- (void) someMethod 
{ 
    SomeClass * object = [[self someObject] retain]; 
} 
+0

[Obj-c autoreleaseの連鎖の可能な連鎖](http://stackoverflow.com/questions/5878875/obj-c-autorelease-a-variable-up-a-chain-of-メソッド) – Caleb

答えて

1

コールスタックに関して考えてみましょう。

someObjectから返された値がobjectに割り当てられる前に、上記の例では-someMethodが終了しません。

関連する問題