Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将iOS中常见的Kotlin扩展函数用作Swift扩展_Ios_Swift_Kotlin_Extension Methods_Kotlin Multiplatform - Fatal编程技术网

无法将iOS中常见的Kotlin扩展函数用作Swift扩展

无法将iOS中常见的Kotlin扩展函数用作Swift扩展,ios,swift,kotlin,extension-methods,kotlin-multiplatform,Ios,Swift,Kotlin,Extension Methods,Kotlin Multiplatform,我有一个Kotlin多平台项目,安装了Android和cocoapods for iOS 我在commonMain/src中有一个文件Extensions.kt,具有以下功能: fun String.isValidEmail(): Boolean { return validate(ValidatorRegex.EMAIL) } 我可以在Android中以字符串扩展名访问此功能: "abcd@gmail.com".isValidEmail() 但在使用Swift的

我有一个Kotlin多平台项目,安装了Android和cocoapods for iOS

我在
commonMain/src
中有一个文件
Extensions.kt
,具有以下功能:

fun String.isValidEmail(): Boolean {
    return validate(ValidatorRegex.EMAIL)
}
我可以在Android中以
字符串
扩展名访问此功能:

"abcd@gmail.com".isValidEmail()
但在使用Swift的iOS中,我需要将其作为另一个类的静态方法调用:

ExtensionsKt.isValidEmail("abcd@gmail.com")
它应该将
commonMain/src
方法转换为
String
的快速扩展,而不是带有静态方法的类


我是否缺少任何配置?

您在这里完成了所有操作。遗憾的是,此选项目前不可用。对于某些类,可以正确执行扩展转换,但Swift的
String
不是正确的转换。这是一个已知的不便之处,K/N团队正在努力改进。

在swift中没有直接的函数调用,您需要创建一个类,然后调用或扩展
String
。在swift中,您不需要这样调用扩展。在Kotlin中,扩展是静态解析的,但它们不是。可能是,;"abcd@gmail.com“.ExtensionsKt.isValidEmail()或;"abcd@gmail.com“.isValidEmail()@EmreSURK,我还希望kotlin multiplatform以这种方式将该代码转换为iOS代码,以便我可以像这样使用它。"abcd@gmail.com.isValidEmail()但现在它正在转换代码,如下所示。扩展名kt.isValidEmail(“abcd@gmail.com)希望您理解我的意思。我认为您不能以这种方式使用扩展。在Swift中,您还可以在扩展中使用计算参数,并且可以这样使用它;"abcd@gmail.com“.ExtensionsKt.isValidEmail。它是一个变量,不再是函数。我不知道如何用Kotlin创建它,也不知道它是否适合您,但这是Swift扩展的方式。您也可以创建一个静态函数并在vay中使用它,但它不再是一个扩展。