我正在尝试实现 kotlin 多平台记录器。在iOS架构的实现过程中,我无法导入os.log来使用os_log。我该如何做到这一点或者我还可以使用什么来登录 Kotlin 多平台项目中的 iOS?
问题是
OSLog
类只有 Swift API:请参阅 here。由于 Kotlin/Native 不提供直接的互操作性,因此某些框架不可用(例如,请参阅 SwiftUI 的相同问题)。开箱即用的最佳选择是使用 NSLog
,正如 Philip 建议的那样,或者使用一些第三方库。有一个资源,其中列出了流行的 Kotlin 多平台库:https: //github.com/AAkira/Kotlin-Multiplatform-Libraries#logging。这可能是一个很好的起点。对此需要注意的两个重要事项:
您可以简单地使用 kotlin
println
,在 iOS 部分您也可以使用 platform.Foundation.NSLog
进行格式化输出
val TAG =“事件”
使用此格式
fun printLog(msg: String) {
NSLog("$TAG $msg")
}
不要这样使用。
NSLog(TAG, msg)
我不知道原因,但它对我有用。