在我的Kotlin Multiplatform项目中,我正在尝试访问kotlin-stdlibSwift中定义的Kotlin类型.
TL; DR:StdLib类型/方法似乎没有导致头定义,我想要一个不涉及编写大量样板代码的解决方案
我在Kotlin中定义了一个接口......
interface MyKotlinInterface {
fun run() : Sequence<String>
}
Run Code Online (Sandbox Code Playgroud)
...并在Swift中实现了这个接口......
class MySwiftClass : MyKotlinInterface {
func run() -> KotlinSequence {
// return sequenceOf("foo")
}
}
Run Code Online (Sandbox Code Playgroud)
...我正在尝试创建一个Sequence但是没有来自kotlin.sequences可用包的方法(例如generateSequence).
实际上是否可以访问我在代码中定义的Kotlin框架类型或方法 - 如果是,如何?此外,如何在不编写样板代码的情况下实现这一目标?
看一下生成的Objective-C头文件,我看到了我的类(显然)和基本Kotlin类型的定义.遗漏的基本上是标准库功能的一切(我关心所有Sequence相关的东西).
我build.gradle.kts看起来像:
plugins {
kotlin("multiplatform") version "1.3.0"
}
kotlin {
targets { /* ... */ }
sourceSets {
getByName("commonMain") {
dependencies {
api("org.jetbrains.kotlin:kotlin-stdlib-common")
}
}
// ...
getByName("iosMain") {
dependencies {
api("org.jetbrains.kotlin:kotlin-stdlib") …Run Code Online (Sandbox Code Playgroud)