【发布时间】:2018-10-08 10:29:49
【问题描述】:
我想知道如何在 Objective C 宏中编写多条指令。 例如,我想创建一个运行以下两条指令的宏,
NSLog(message);
DDLogDebug(message);
我试过了,
#define LOGMESSAGE(message) (NSLog(message);DDLogDebug(message);)
但它给了我编译器错误。
【问题讨论】:
标签: ios objective-c macros
我想知道如何在 Objective C 宏中编写多条指令。 例如,我想创建一个运行以下两条指令的宏,
NSLog(message);
DDLogDebug(message);
我试过了,
#define LOGMESSAGE(message) (NSLog(message);DDLogDebug(message);)
但它给了我编译器错误。
【问题讨论】:
标签: ios objective-c macros
你可以这样写多行宏:
#define LOGMESSAGE(message) \
NSLog(message); \
DDLogDebug(message); \
或使用单行版本(无括号):
#define LOGMESSAGE(message) NSLog(message);DDLogDebug(message);
【讨论】:
do { ... } while (0) 包装器,因为它消除了一些棘手错误的可能性。见stackoverflow.com/questions/154136