How to use Sealed Class Data from Flow in Swift in Kotlin Mutliplatform Mobile?

Viewed 697

I unable to access the sealed class data observed in a Flow from Swift ..

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

In the above gist ....

In MainActivity.kt , I used sealed class in flow for Data

Now I need the same in Swift but it's confusing

Even I used something as CFlow wrapping.. still confusion

In Swift , I can't get object type only as nsarray and also NetworkStatus.data is not accessible

.. I tried manual typecast (in line 8 , contentview.swift )

Still data object don't have any type ...

Please help me how to implement the same flow in Swift like in MainActivity.kt

0 Answers
Related