我的共享模块包含 Repository 类,该类具有两个函数,它们返回包装在Flow
名为 CFlow 的自定义类中的项目列表。
我CFlow
从kotlinconf-app和这里获取了代码:
fun <T> Flow<T>.asCFlow(): CFlow<T> = CFlow(this)
class CFlow<T>(private val origin: Flow<T>) : Flow<T> by origin {
fun watch(block: (T) -> Unit): Closeable {
val job = Job()
onEach {
block(it)
}.launchIn(CoroutineScope(Dispatchers.Main + job))
return object : Closeable {
override fun close() {
job.cancel()
}
}
}
}
存储库示例函数:
fun getData1(): CFlow<List<Profile>>
fun getData2(): CFlow<List<String>>
当我尝试在 iOS swift 代码中调用此函数时,函数的返回类型被转换为CFlow<NSArray>
watch 函数,数组的类型为 Any。
这很奇怪,因为在kotlinconf-app和这里都保留了函数的返回类型,并且它们的代码库中不涉及强制转换。
问题:如何让 Xcode iOS 项目中知道 CFlow 的类型?
安卓工作室版本:4.1.1
Kotlin 语言和插件版本:1.4.21
Kotlin Multiplatform Mobile 插件版本:0.2.0
Xcode 版本:12.2