我创建了一个CLogger
目标C类,并在下面的宏中进行了定义:
#define CLogError(fmt, ...) [[CLogger defaultLogger] log:@"Error" format:(LOG_FORMAT fmt), [[NSString stringWithUTF8String:__FILE__] lastPathComponent], LINE, PRETTY_FUNCTION, ##__VA_ARGS__]
我可以在目标C文件中访问
CLogError
并进行调用。但是上述宏不能在swift文件中访问。因此,我创建了一个静态内联方法作为包装器,以便迅速调用宏。但是,当我将参数传递给宏时,在xcode中出现了expected ')'
错误。如果我在宏中硬编码字符串,则同样有效。我在这里做错什么吗?static inline void logEvent(NSString* msg)
{
CLogError("Invalid Json");// it works
CLogError(@"nsstring");// it works
CLogError(msg);// didn't work
}
最佳答案
#define CLogError(fmt, ...) [[CLogger defaultLogger] log:@"Error" format:(LOG_FORMAT fmt), [[NSString stringWithUTF8String:__FILE__] lastPathComponent], LINE, PRETTY_FUNCTION, ##__VA_ARGS__]
(LOG_FORMAT
看起来不应该在那里。我想您只想要:#define CLogError(fmt, ...) [[CLogger defaultLogger] log:@"Error" format:(fmt), [[NSString stringWithUTF8String:__FILE__] lastPathComponent], LINE, PRETTY_FUNCTION, ##__VA_ARGS__]
关于objective-c - Xcode中预期的')'错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28313248/