我正在使用TestFlight,我已经有了这个宏来替换NSLog的TestFlight远程日志记录等价物。
#define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
我刚刚从TestFlight网站上复制粘贴了这个,现在我想创建一个我自己的用途略有不同。
我希望能够输入...
MyEventLog(@"Something happened.");
......并将其解释为......
[[MyEventLogManager sharedInstance] newLogWithText:@"Something happened"];
我只是不确定语法是如何工作的。
答案 0 :(得分: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__]
答案 1 :(得分:1)
你可以查看我的LoggingEngine,我使用类似的东西。
#define PBLog(s,...) [PBLog logFile:__FILE__ withLineNumber:__LINE__ andFormat:(s), ##__VA_ARGS__]
在这里,您可以看到我调用方法[PBLog logfile:withLineNumber:andFormat:]