可以请任何人告诉如何使用像调试日志这样的宏,通过在ios中构建框架时向控制台输出一些信息,当应用程序开发人员使用此框架运行应用程序时它应该可以工作在调试模式下。在ios自定义框架中的宏定义不起作用
回答
1)在库中定义一个全局的BOOL一些奇怪的名字:
BOOL GzRkYr22; // (use your framework name as prefix or suffix)
2)提供了一些方法为您的用户打开标志或关闭:
- (void)enabledDebuggingMessages:(BOOL)val;
这种方法将设置全局标志。如果以后决定要只对日志消息
Log(@"Just did %d operations", someNumber);
5):
3)在.PCH文件
extern BOOL GzRkYr22;
#define Log(format, ...) \
do { if(GzRkYr22) NSLog(format, \
## __VA_ARGS__); \
} while(NO)
4将这个)与日志消息撒上代码一个“调试”版本的库,但完全禁用它们以用于“生产”版本:
#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
高超的解释,非常感谢。 –
@David H请给我一些关于使用do的更多解释,但为什么不仅如果条件。和NSLog(格式,\ ## __VA_ARGS__);这是我需要使用的格式。 – lreddy
@Reddy做虽然是一个古老的伎俩,以确保当你把';'在宏之后,宏展开为一行代码,并且如果您在单个if语句中使用它,则不会意外分支“if(something)MACRO(...); –
- 1. 在自定义框架中添加自定义框架
- 2. 将Firebase添加到iOS中的自定义框架不起作用
- 3. 自定义复选框不起作用
- 4. 宏定义为类型不起作用
- 5. 定义宏UIFont不起作用
- 6. iOS上的自定义动态框架
- 7. Tkinter自定义框架不工作
- 8. 在自定义ios框架中导入第三方框架
- 9. iOS自定义框架开发?
- 10. SLF4J自定义绑定不起作用
- 11. JavaFX自定义绑定不起作用
- 12. 如何将我的自定义类转换为iOS中的自定义框架?
- 13. iOS - 在我的自定义框架中使用第三方库
- 14. 在应用程序框架中定义自定义事件YUI
- 15. QLineEdit的自定义框架
- 16. 自定义初始化自定义UIView不起作用
- 17. 在android中自定义Facebook对话框Feed不起作用
- 18. 如何在iOS项目中使用自定义框架?
- 19. cancancan自定义操作不起作用
- 20. navigator.push的自定义sceneConfigs不起作用
- 21. iPhone自定义框架?
- 22. 自定义ASP.Net Ajax框架
- 23. 自定义登录框架
- 24. PHP MVC自定义框架
- 25. 在OSX中创建自定义框架
- 26. 在yii2框架中自定义登录
- 27. 在iPhone中加载自定义框架
- 28. 自定义对话框中的OnTouchListener不起作用
- 29. 调用自定义cmdlet不起作用?
- 30. 无法在iOS中的自定义框架中导入框架文件
您在混淆概念。如果您需要某些条件的警告(如您未在构建线上定义某些内容),则可以在构建项目时看到'#pragma warning msg'。如果您希望开发人员使用库来获取日志消息,则必须编写自己的“日志”功能,该功能应将文本输出为“std error”。显然,你可以编写一个使用fprintf(stderr,C-Format-String,args ...)结束的宏; –
大卫嗨大卫我没有混淆的概念,我只是问有没有办法这样做,你可以请清楚解释一下fprintf你在说什么,我该如何使用它。提前致谢。 –