如何在iOS侧的KMM应用中正确初始化Koin? 我在Kotlin Multiplatform Mobile(KMM)应用程序上工作,并尝试使用Koin进行依赖注入。 Android方面工作正常,但是初始化Koin时我会遇到问题...

问题描述 投票:0回答:1
object KoinHelper { fun doInitKoin() { IosModule.initKoin() } } object IosModule { fun initKoin() { CommonModule.initKoin(iosPlatformModule()) } }

where commonModule.initkoin()是共享模块的共享初始化函数,而iosplatformmodule()是iOS特定的模块。 在迅速的一面,在iosapp中,我试图将这样的初始化称为:

extension KoinHelper { func initKoin() { KoinHelperKt.doInitKoin() } } @main struct iOSApp: App { @State private var isOnboardingCompleted = false private let viewModelHelper = OnboardingViewModelHelper() init() { // Initialize Koin when the app starts KoinHelper().doInitKoin() print("DEBUG: iOSApp - Koin initialized") } var body: some Scene { WindowGroup { ContentView() } } }

问题:在Xcode中构建时,我会收到以下错误: 在范围中找不到“ koinhelperkt”

我通过下一个解决方案解决了这个问题:

extension KoinHelper { func doInitKoin() { KoinHelper.shared.doInitKoinFromSwift() } }

iosmain中的修改代码: enter image description hereobject KoinHelper { fun initKoin() { IosModule.initKoin() } @OptIn(ExperimentalObjCName::class) @ObjCName("doInitKoinFromSwift") fun doInitKoinFromSwift() { initKoin() } }

ios xcode kotlin kotlin-multiplatform koin
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.