ios - 如何在混合 Xcode 项目(Objective-C 和 Swift)中使用 XCGLogger

标签 ios objective-c xcode swift xcglogger

我有一个混合 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/

相关文章:

ios - 是否有任何免费的 iOS SDK 用于 syling map ?

javascript - 通过 javascript 创建输入时选择 iOS-Keyboard

ios - 带有 Objective-C 次要进度的进度 View (三色进度条)

iPhone - 将字符串转换为无符号字符

ios - 使用 Swift 在 UICollectionView Cell 上点击手势

ios - 未调用 Swift 3 委托(delegate)函数

ios - 如何使用变量覆盖 UITableViewCell 的初始化?

ios - 如何创建像 Vine App 一样的下拉表格 View

xcode - initWithContentsOfURL 通常返回 nil

swift - 重新加载 Collection View 后关闭 View