0

secondObjectを使用してfirstObjectを1つ作成しました。これで、firstObjectに何が起こるかというsecondObjectがリリースされました。これが私のコードです。

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

2 に答える 2

2

それがリリースsecondObjectする参照がない限り、何も起こりません。firstObjectfirstObject

于 2012-05-14T05:31:12.427 に答える
1

そのメソッドを超えてfirstObject参照を保持する必要がある場合は、を保持する必要があります。これにより、上記のコードでリリースしている場合でも、割り当てが解除されるのを防ぐことができます。オブジェクトを解放すると、「これで使い終わった」と言っていることになります。ただし、オブジェクトは、他のオブジェクトが現在使用していない場合にのみ割り当てが解除されます(保持カウントによって決定され、それを確認する必要はありません)。secondObjectinitWithSecondObject:secondObjectsecondObject

于 2012-05-14T05:34:32.123 に答える