无法使用在 iOS 中共同编写的 Kotlin 扩展函数作为 Swift 扩展

Pin*_*kin 4 extension-methods ios kotlin swift kotlin-multiplatform

我有一个 Kotlin Multiplatform 项目设置,带有适用于 iOS 的 Android 和 cocoapods。

我有一个文件Extensions.ktcommonMain/src具有以下功能:

fun String.isValidEmail(): Boolean {
    return validate(ValidatorRegex.EMAIL)
}
Run Code Online (Sandbox Code Playgroud)

我可以在 Android 中访问此功能作为String扩展:

"abcd@gmail.com".isValidEmail()
Run Code Online (Sandbox Code Playgroud)

但是在使用 Swift 的 iOS 中,我需要将它作为另一个类的静态方法来调用:

ExtensionsKt.isValidEmail("abcd@gmail.com")
Run Code Online (Sandbox Code Playgroud)

它应该将该commonMain/src方法转换为 Swift 扩展String而不是具有静态方法的类。

我缺少任何配置吗?

Art*_*rev 6

你在这里做所有的事情。不幸的是,此选项目前不可用。某些类可能会正确执行扩展转换,但 SwiftString不是。这是一个众所周知的不便,K/N 团队正在努力使其变得更好。

  • 想知道他们为“解决”问题付出了多大的努力。毕竟已经过去3年了 (2认同)