我有一个 Kotlin 多平台项目设置,其中包含适用于 iOS 的 Android 和 cocoapods。
我在 commonMain/src
中有一个文件 Extensions.kt
,具有以下功能:
fun String.isValidEmail(): Boolean {
return validate(ValidatorRegex.EMAIL)
}
我可以在 Android 中以 String
扩展的形式访问此函数:
"abcd@gmail.com".isValidEmail()
但是在使用 Swift 的 iOS 中,我需要将其作为另一个类的静态方法来调用:
ExtensionsKt.isValidEmail("abcd@gmail.com")
它应该将该 commonMain/src
方法转换为 String
的 Swift 扩展,而不是具有静态方法的类。
我是否缺少任何配置?
最佳答案
你在这里做所有的事情。不幸的是,这个选项目前不可用。对于某些类,扩展转换可能可以正确执行,但 Swift 的 String
不是这样。这是一个已知的不便,K/N 团队正在努力改善它。
关于ios - 无法将 iOS 中常见的 Kotlin 扩展函数用作 Swift 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60050795/