リリース後、Objective-Cでポインターをnilに設定する必要はありますか?
-
03-07-2019 - |
質問
次のようなことをするのに何か問題がありますか
NSString * string = [[NSString alloc] init];
...
[string release];
または追加することにも価値がありますか(ベストプラクティス以外)
string = nil;
?
解決
必須ではありませんが、良い習慣です。リリース後に誤って参照した場合、悪いことが起こる可能性がありますが、Objective Cでは、nilを参照しても害はありません。
他のヒント
インスタンス変数をnilに設定すると、マルチスレッドアプリケーションでは、シングルスレッドアプリケーションよりも便利です。複数のスレッドでは、インスタンス変数が前リリースされました。
他の説得力のある理由がない限り、通常はシングルスレッドアプリケーションに煩わされません。
Objective-Cは、実際には派手なプリプロセッサを備えたCと同じです。
Objective-Cでポインターをnilに設定しても、そのポインターが指していたものには影響しません。
所属していません StackOverflow