私の人生ではこれを機能させることができないため、根本的に理解できないことがあります。を拡張するマクロを作成したいNSLog(NSString *format, ...)
。これが私が思いついたものです:
NSLogExtensions.h
#define DebugLog(debugMode, format, ...) MyDebugLog(debugMode, [[NSString stringWithFormat:@"<%@> (Line %d): ", NSStringFromClass([self class]), __LINE__] stringByAppendingString:format], ##__VA_ARGS__)
@interface NSLogExtensions : NSObject
@end
NSLogExtensions.m
#import "NSLogExtensions.h"
@implementation NSLogExtensions
void MyDebugLog(bool debugMode, NSString *format, ...) {
va_list(argumentList);
va_start(argumentList, format);
if (debugMode) {
NSLogv(format, argumentList);
}
va_end(argumentList);
}
@end
NSLogExtensions ヘッダー ファイルをインクルードして、マクロを使用できると思っていましたが、GCC の暗黙的な関数宣言の警告が引き続き表示されます。