リリース後、Objective-Cでポインターをnilに設定する必要はありますか?

StackOverflow https://stackoverflow.com/questions/803531

  •  03-07-2019
  •  | 
  •  

質問

次のようなことをするのに何か問題がありますか

  

NSString * string = [[NSString alloc] init];
   ...
   [string release];

または追加することにも価値がありますか(ベストプラクティス以外)

  

string = nil;

役に立ちましたか?

解決

必須ではありませんが、良い習慣です。リリース後に誤って参照した場合、悪いことが起こる可能性がありますが、Objective Cでは、nilを参照しても害はありません。

他のヒント

インスタンス変数をnilに設定すると、マルチスレッドアプリケーションでは、シングルスレッドアプリケーションよりも便利です。複数のスレッドでは、インスタンス変数がリリースされました。

他の説得力のある理由がない限り、通常はシングルスレッドアプリケーションに煩わされません。

Objective-Cは、実際には派手なプリプロセッサを備えたCと同じです。

Objective-Cでポインターをnilに設定しても、そのポインターが指していたものには影響しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top