私はこれらの行を見つけました:
#undef TAG
#define kTAG @"TestRegistration///: "
#define TAG kTAG
TAG が一度も使用されていない場合、なぜ TAG の#undef TAG
前にTAG を使用するの#define
ですか?
私はこれらの行を見つけました:
#undef TAG
#define kTAG @"TestRegistration///: "
#define TAG kTAG
TAG が一度も使用されていない場合、なぜ TAG の#undef TAG
前にTAG を使用するの#define
ですか?
C の一部のバージョンでは、定義が前の宣言とまったく同じでない限り、マクロを再宣言することは違法です。
したがって、これは単にこの問題を防ぐための防御的なコーディングです (ただし、簡単なテストでは、この制限は Objective-C には現れないことが示されています)。
マクロが以前に定義されていない場合、それを行う理由はありません。ただし、マクロが以前に定義されている可能性があると思われる場合は、最初に定義を解除することをお勧めします。これにより、コードの読者に、マクロの以前に設定された値 (存在する場合) を上書きする意図があることが明確になるためです。
マクロがすでに定義されているとは思わない場合は、最初に undef を使用しないでください。そうすれば、(驚くべきことに!) 既に定義されている場合、警告が表示されます。