微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Kotlin Mutliplatform Mobile 的 Swift 中使用 Flow 中的密封类数据?

如何解决如何在 Kotlin Mutliplatform Mobile 的 Swift 中使用 Flow 中的密封类数据?

我无法访问在 Swift 的 Flow 中观察到的密封类数据..

sealed class NetworkStatus<T> {

data class Loading<T>(var loading: Boolean) : NetworkStatus<T> ()

data class CustomSignal<T>(var signal: String) : NetworkStatus<T>()

data class CustomSignalDetailed<T>(var signal: ErrorCaseData) : NetworkStatus<T>()

data class Failure<T>(val e: Throwable) : NetworkStatus<T>()

data class Data<T> (val data: T ) : NetworkStatus<T>()

companion object {

    fun <T>loading(isLoading: Boolean): NetworkStatus<T> = Loading(isLoading)

    fun <T> customstatus(signal: String): NetworkStatus<T> = CustomSignal(signal)

    fun <T> customStatusDetailed(signals: ErrorCaseData): NetworkStatus<T> = CustomSignalDetailed(signals)

    fun <T> failure(e: Throwable): NetworkStatus<T> = Failure(e)

    fun <T> data(data: T): NetworkStatus<T> = Data<T>(data)
    }

}

https://gist.github.com/RageshAntony/a4fd357973485b5fb8aef0e189ee9e7e

在上面的要点中......

在 MainActivity.kt 中,我在数据流中使用了密封类

现在我在 Swift 中需要同样的东西,但它令人困惑

即使我使用了一些 CFlow 包装.. 仍然困惑

在 Swift 中,我无法仅将对象类型作为 nsarray 获取,并且 NetworkStatus.data 也无法访问

.. 我尝试了手动类型转换(在第 8 行, contentview.swift )

静止数据对象没有任何类型...

请帮助我如何在 Swift 中实现与 MainActivity.kt 中相同的流程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。