ios自定义框架中的宏定义不起作用



在ios中构建框架时,可以通过将一些信息打印到控制台来告诉任何人如何使用像debuglog这样的宏吗?当应用程序开发人员在调试模式下使用该框架运行应用程序时,它应该会起作用。

1)在库中用一些奇怪的名称定义全局BOOL:

BOOL GzRkYr22; // (use your framework name as prefix or suffix)

2) 为您的用户提供一些打开或关闭标志的方法:

- (void)enabledDebuggingMessages:(BOOL)val;

该方法将设置全局标志。

3) 把这个放在你的.pch文件中

extern BOOL GzRkYr22;
#define Log(format, ...) 
do { if(GzRkYr22 ) NSLog(format, 
## __VA_ARGS__); 
} while(NO)

4) 在代码中添加日志消息:

Log(@"Just did %d operations", someNumber);

5) 如果您后来决定只想为库的"调试"版本提供日志消息,而为"生产"版本完全禁用日志消息:

#ifndef NDEBUG // some macro that is defined or not defined for the different modes
#define Log(format, ...) 
do { if(GzRkYr22 ) NSLog(format, 
## __VA_ARGS__); 
} while(NO)
#else
#define Log(format, ...)
#endif

最新更新