2012-05-14 3 views
0

secondObjectの助けを借りてfirstObjectを1つ作成しました。今、firstObjectに何が起こるのか、secondObjectを公開しました。 ここに私のコードです。このオブジェクトに何が起こるか

SecondObject *secondObject = [[SecondObject alloc]init]; 
FirstObject *firstObject = [[FirstObject alloc]initWithSecondObject:secondObject]; 
[secondObject doSomethings]; 
[firstObject doSomeThings]; 
[secondObject release]; 

答えて

2

secondObjectはそれがリリースfirstObjectへの参照を持っていなければ、何もfirstObjectに起こりません。それはinitWithSecondObject:方法だ超えfirstObjectsecondObjectへの参照を保持する必要がある場合

+0

ありがとう、それは私を助けてくれる。 – ohmprakash

1

、それはsecondObjectを保持しなければなりません。上記のコードで解放しても、secondObjectの割り当てが解除されることはありません。オブジェクトを解放すると、「これを使ってやったんだ」と言っている。しかし、オブジェクトは、他のオブジェクトが現在それを使用していない場合(保持カウントによって決定されるように、あなたがそれを見ている必要はありません)のみ割り当て解除されます。

+1

それは私に多くの助けをありがとう。 – ohmprakash

関連する問題