我开始使用新的编程语言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, 0, frmt, ##__VA_ARGS__)
有没有什么方法可以让预处理器定义在Swift中工作?或者有没有人尝试过类似的方法并取得更大的成功?
ProjectName-Bridging-Header.h
?我尝试了#import <DDLogWrapper.h>
,但 Xcode 报告了file not found
错误。DDLogWrapper.h
在目录ProjectName/Application/DDLogWrapper.h
中。我还尝试了Application/DDLogWrapper.h
,但也不起作用。我的Build Settings
中的SWIFT_OBJC_BRIDGING_HEADER
字段为空,但我没有问题桥接其他模块。 - netwire#import "DDLogMacros.h"
。 - admdrewpod 'CocoaLumberjack/Swift'
。最低要求为iOS8。如果您像我一样被困在支持iOS7的情况下,那么这个工具非常实用。 - mriddle89