2

私は TestFlight を使用しています。このマクロを使用して、NSLog を TestFlight のリモート ログに相当するものに置き換えます。

 #define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

これを TestFlight Web サイトからコピーして貼り付けたところ、少し異なる目的で独自のものを作成したいと思います。

文字入力できるようになりたい...

MyEventLog(@"Something happened.");

...そして、それを次のように解釈するには...

[[MyEventLogManager sharedInstance] newLogWithText:@"Something happened"];

構文がどのように機能するのかわかりません。

4

2 に答える 2

4
#define MyEventLog(message) [[MyEventLogManager sharedInstance] newLogWithText:message]

ただし、そのメソッドの varargs バージョンを提供すると便利なので、フォーマットされたテキストを渡すことができます。

- (void)newLogWithFormat:(NSString *)format, ...
{
    va_list va;
    va_start(va, format);
    NSString *message = [[NSString alloc] initWithFormat:format arguments:va];
    va_end(va);

    [self newLogWithText:message];

    // If not using ARC, then:
    // [message release];
}

そして使用:

#define MyEventFormat(__FORMAT__, ...) [[MyEventLogManager sharedInstance] newLogWithFormat:__FORMAT__, ##__VA_ARGS__]
于 2013-02-21T10:17:12.787 に答える
1

私の LoggingEngine を見ることができます。私はこれに似たものを使用しています。

#define PBLog(s,...) [PBLog logFile:__FILE__ withLineNumber:__LINE__ andFormat:(s), ##__VA_ARGS__]

ここで、メソッドを呼び出していることがわかります[PBLog logfile:withLineNumber:andFormat:]

https://github.com/nerdishbynature/PBLog

于 2013-02-21T10:18:13.360 に答える