我有一个混合 Xcode 项目。我的 appDelegate 是用 Objective-C 编写的,我的 Controller 部分是用 Swift 编写的。
是否可以在该项目中使用 XCGLogger?如果是,我如何在 appDelegate 中初始化 XCGLogger(例如 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
)?
最佳答案
我也发现了同样的问题,想合并到一个混合的 Swift+Objective-C 项目中。幸运的是,我找到了这个 PR https://github.com/DaveWoodCom/XCGLogger/pull/122这有助于解决问题。
但为了check out his PR我们需要做一些改变:
@objc public class XCGLogWrapper: NSObject {
@objc public static func log(_ level: LogLevel = LogLevel.debug, functionName: String = #function, fileName: String = #file, lineNumber: Int = #line, logMessage: String) {}
注意省略了 level
标签参数。
===
解释:
所以从 XCGLogWrapper
的这个静态函数开始:
static XCGLogWrapper.log(_:functionName:fileName:lineNumber:logMessage:)
在 Objective-C 中将被翻译成这样:
[XCGLogWrapper log:level functionName: @(__PRETTY_FUNCTION__) fileName: @__FILE__ lineNumber: __LINE__ logMessage: message ]
===
要获得更完整的答案,请查看我对 PR https://github.com/DaveWoodCom/XCGLogger/pull/122#issuecomment-468136786 的评论
希望对您有所帮助!
关于ios - 如何在混合 Xcode 项目(Objective-C 和 Swift)中使用 XCGLogger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33736306/