目的の c 可変引数関数について明確な考えがありません。nlsog 型パラメーターを受け取る関数を書きたいのですが、その関数内で NSLog を使用することがあります。どうやってやるの?
-(void) printStatus:(NSString*)status, ...
{
// I want use use NSLog with all these parameter here.
// some gui logging also happens here
}
コールは次のようになります。
[self printStatus:@"status"];
また
[self printStatus:@"Staus: %@", someObject];
NSLog を使用する代わりに、printStatus を使用したいと考えています。コンソール ロギングを GUI ロギングに切り替える必要がある場合、コード内のすべての場所を変更するのではなく、printStatus 関数に変更するだけで済みます。
または、ここで使用しているように DLog を使用します。
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
# define DLog(...) /* */
#endif