ios – 带有Swift的CocoaLumberjack – 调用预处理器宏

ios – 带有Swift的CocoaLumberjack – 调用预处理器宏,第1张

概述我开始使用新的编程语言 Swift构建一个IOS应用程序.我设法使用CocoaPods并且能够在我的AppDelegate.swift中使用我的CustomLoggerFormatter(Objective-C)成功创建DDTTYLogger并将其附加到记录器. var customLoggerFormatter = CustomLoggerFormatter()var consoleLogg 我开始使用新的编程语言 Swift构建一个IOS应用程序.我设法使用CocoaPods并且能够在我的AppDelegate.swift中使用我的CustomLoggerFormatter(Objective-C)成功创建DDTTYLogger并将其附加到记录器.
var customLoggerFormatter = CustomLoggerFormatter()var consoleLogger: DDTTYLogger = DDTTYLogger.sharedInstance()consoleLogger.setLogFormatter(customLoggerFormatter)DDLog.addLogger(consoleLogger)

但问题是,CocoaLumberjack库正在使用预处理器宏来处理记录器方法,如DDLogVerbose(@“..”)

这是在DDLog.h中定义的:

#define DDLogVerbose(frmt,...) LOG_OBJC_MAYBE(LOG_ASYNC_VERBOSE,LOG_LEVEL_DEF,LOG_FLAG_VERBOSE,frmt,##__VA_ARGS__)

是否有任何解决方法使预处理器定义在Swift中工作?或者有没有人尝试类似的东西更成功?

解决方法 好的,我刚刚找到了解决方案.编写一个Objective-C Wrapper类,调用预处理器并提供调用它的方法.

希望这将有助于其他人面临同样的问题.

我首先创建了一个头文件:

@interface DDLogWrapper : NSObject+ (voID) logVerbose:(Nsstring *)message;+ (voID) logError:(Nsstring *)message;+ (voID) logInfo:(Nsstring *)message;@end

与相应的实现:

#import <Foundation/Foundation.h>#import "DDLogWrapper.h"// Logging Framework Lumberjack#import "DDLog.h"#import "DDAsllogger.h"#import "DDTTYLogger.h"// DeFinition of the current log level#ifdef DEBUGstatic const int ddLogLevel = LOG_LEVEL_VERBOSE;#elsestatic const int ddLogLevel = LOG_LEVEL_ERROR;#endif@implementation DDLogWrapper+ (voID) logVerbose:(Nsstring *)message {    DDLogVerbose(message);}+ (voID) logError:(Nsstring *)message {    DDLogError(message);}+ (voID) logInfo:(Nsstring *)message {    DDLogInfo(message);}@end

重要的是将DDLogWrapper.h文件添加到Projectname-BrIDging-header.h文件,然后您可以在Swift中实例化DDLogWrapper并调用方法logVerbose,logError,logInfo ..

使用以下代码,我能够创建一个日志语句:

DDLogWrapper.logVerbose("TEST");
总结

以上是内存溢出为你收集整理的ios – 带有Swift的CocoaLumberjack – 调用预处理器宏全部内容,希望文章能够帮你解决ios – 带有Swift的CocoaLumberjack – 调用预处理器宏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存