你如何在Swift中使用Lumberjack登录?
发布时间:2020-12-14 04:25:22 所属栏目:百科 来源:网络整理
导读:我正在将使用Lumberjack Logging的Objective-C文件转换为 Swift.它似乎主要是工作,除了我声明ddloglevel的部分. Objective-C方法: #ifdef DEBUGstatic const int ddLogLevel = LOG_LEVEL_INFO;#elsestatic const int ddLogLevel = LOG_LEVEL_VERBOSE;#endif
我正在将使用Lumberjack Logging的Objective-C文件转换为
Swift.它似乎主要是工作,除了我声明ddloglevel的部分.
Objective-C方法: #ifdef DEBUG static const int ddLogLevel = LOG_LEVEL_INFO; #else static const int ddLogLevel = LOG_LEVEL_VERBOSE; #endif Swift方式: #if DEBUG let ddLogLevel = LOG_LEVEL_INFO; #else let ddLogLevel = LOG_LEVEL_VERBOSE; #endif 除了我这个编译时错误:使用未解析的标识符’LOG_LEVEL_INFO’ 为什么会这样?我该如何解决? 解决方法
查看库源,LOG_LEVEL_INFO和LOG_LEVEL_VERBOSE是#define宏,Swift不会自动导入.斯威夫特只看到了const.
但是,我认为你的方法作为一个整体可能没有意义 – 看起来你正在尝试为全局Objective-C常量ddLogLevel分配一个值. Swift’s let不会为你做那件事 – 它是一个完全不同的命名空间.这是在Swift中无法使用Objective-C宏的基础之上. 最好的办法是在项目中保留一个Objective-C文件(比如说,LoggingConfig.m只包含: #import "DDLog.h" #ifdef DEBUG static const int ddLogLevel = LOG_LEVEL_INFO; #else static const int ddLogLevel = LOG_LEVEL_VERBOSE; #endif 您使用的库在很大程度上依赖于Objective-C功能,因此最好只使用Objective-C进行配置. 编辑:更详细地查看这个库(之前我从未听说过),在Swift中使用CocoaLumberjack可能不会有用,因为它的主要API是一个名为DDLog的预处理器宏.我不认为这是一个很好的匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |