我有一个混合的 Xcode 项目。我的 appDelegate 是用 Objective-C 编写的,而我的控制器部分是用 Swift 编写的。是否可以在该项目中使用 XCGLogger?如果是,我如何在 appDelegate 中初始化 XCGLogger(例如- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
)?
问问题
319 次
1 回答
0
我也发现并遇到了同样的问题,想合并到一个混合的 Swift+Objective-C 项目中。幸运的是,我发现这个 PR https://github.com/DaveWoodCom/XCGLogger/pull/122有助于解决问题。
但是为了检查他的 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的评论
希望能帮助到你!
于 2019-03-01T04:34:10.077 回答