0

私は次のようなオブジェクトを割り当てています

A * a = [[A alloc] init];

別の時点で私は強制的に設定しています

a = nil;

オブジェクトを今すぐ解放できるというメッセージをARCにフラッシュしますか?

4

2 に答える 2

2

簡単な答え - はい。オブジェクトをnilに設定すると、Arcによって殺されます(ほとんどの場合、私の経験から、ARCを信頼できます)

arc の dealloc メソッドが作成されます。dealloc 呼び出しを直接行ってはなりません。ただし、インスタンス変数以外のリソースを解放する必要がある場合は、カスタムの dealloc メソッドを作成できます。カスタム dealloc メソッドを作成するときは、[super dealloc] メソッドを呼び出さないでください。これは自動的に行われ、コンパイラによって強制されます。

詳細については、こちらをご覧ください。

于 2012-08-22T09:52:12.053 に答える
0

あなたが指していた元のオブジェクト (alloc/init で作成した空の A オブジェクト) は解放されると思いますが、「a」ポインターを引き続き使用して、別のオブジェクトを指すようにすることができます。

于 2012-08-22T09:57:02.437 に答える