我有一个名为 MyApp 的应用,它链接到静态库 MyLibrary 我已将 MyLibrary 项目添加到Xcode,并将 MyLibrary 目标添加到 MyApp 的目标依赖项中。 所有这一切都很好,我可以设置断点,我很高兴。
问题是我想在库中使用条件日志:
#ifdef DEBUG
# define MYDebug(msg, ...) NSLog(@"\nDEBUG -> %@ \n(%s:%d)",[NSString stringWithFormat:msg, ## __VA_ARGS__], __PRETTY_FUNCTION__,__LINE__);
#else
# define MYDebug(msg, ...)
#endif
所以我的库有两个构建配置: - 调试在“预处理器宏”中的目标构建设置中有“DEBUG = 1” - Prod 什么都没有
MyLibrary 目标设置为使用Debug构建配置构建。
如果我构建静态库(.a)并将其包含在项目中,这可以正常工作。 但是如果它是由目标依赖构建的,那么似乎没有定义DEBUG(MYDebug不会记录任何东西)。
我还尝试在 MyApp 的构建设置中设置DEBUG = 1,但它不起作用。
是否有我遗漏的东西或其他方法呢?
答案 0 :(得分:8)
它应该只是“DEBUG”而不是“DEBUG = 1”。此外,要使用需要对象赋值(NSString等)的宏,您需要转义大多数字符,如@
和"
等。
以下是xCode 4.1中我的工作项目的屏幕截图: