2

コンパイル時に使用するとエラーになるように、NSLogの使用を禁止することは可能ですか? 理想的には、許可されていないメソッドの名前を持つある種のコンパイラ フラグですか?

ありがとう

4

3 に答える 3

11

NSLog次のように(そしておそらくNSLogv)再宣言すると、

void NSLog(NSString *format, ...) UNAVAILABLE_ATTRIBUTE;
void NSLogv(NSString *format, va_list args) UNAVAILABLE_ATTRIBUTE;

プリコンパイルされたヘッダー ファイルで、素敵なエラー メッセージが表示されます。

main.m:199:3: エラー: 'NSLog' は利用できません
                NSLog(@"%@", s1);
                ^

カスタム エラー メッセージを提供することもできます ( Clang ドキュメントの非推奨および使用不可の属性に関するメッセージに記載されています)。

void NSLog(NSString *format, ...) __attribute__((unavailable("You should not do this!")));
main.m:202:3: エラー: 'NSLog' は利用できません: これを行うべきではありません!
                NSLog(@"%@", s1);
                ^
于 2013-04-17T20:33:08.707 に答える