如何使用 swift 中的界面与 Kotlin 多平台移动设备
How to use interface in swift with Kotlin multiplatform moblie
我正在尝试使用 swift 中的界面,但找不到 属性
commainMain
interface ApplicationToken {
val accessToken: String
val refreshToken: String
}
iosMain
Platform.kt
lateinit var tokenProvider: ApplicationToken
HttpClient.kt
actual fun httpClient(config: HttpClientConfig<*>.() -> Unit) = HttpClient(Darwin) {
config(this)
engine {
configureRequest {
setAllowsCellularAccess(true)
}
}
install(Auth) {
bearer {
loadTokens {
BearerTokens(tokenProvider.accessToken, "")
}
}
}
}
现在,当我要在我的 swift 代码中访问 tokenProvider 时。它找不到。我正在添加图片请看一下。
我尝试了另一个选项来创建 class 并实现我的接口并调用 class
class getToken : ApplicationToken {
let accessToken: String = ""
let refreshToken: String = ""
}
_ = getToken()
但它给了我错误。我无法粘贴它,因为我在 xcode.
中不明白
在为扩展(例如 fun SomeClass.extension()
)和全局变量生成代码时,就像您的情况一样,Kotlin 会创建一种与文件名相关的名称空间。
在您的情况下,您的 属性 应该在 PlatformKt.tokenProvider
之下。
通常当很难找到您的 kotlin 代码在 iOS 端的可见性时,检查框架头文件很有用。它应该放在附近的某个地方(将 shared
替换为您的框架名称):
shared/build/cocoapods/framework/shared.framework/Headers/shared.h
我更喜欢在我的 Xcode 项目中通过引用添加此文件,这样我就可以一直快速访问:
然后您可以轻松地在该文件中搜索您的 variable/class/etc 姓名。
我正在尝试使用 swift 中的界面,但找不到 属性
commainMain
interface ApplicationToken {
val accessToken: String
val refreshToken: String
}
iosMain
Platform.kt
lateinit var tokenProvider: ApplicationToken
HttpClient.kt
actual fun httpClient(config: HttpClientConfig<*>.() -> Unit) = HttpClient(Darwin) {
config(this)
engine {
configureRequest {
setAllowsCellularAccess(true)
}
}
install(Auth) {
bearer {
loadTokens {
BearerTokens(tokenProvider.accessToken, "")
}
}
}
}
现在,当我要在我的 swift 代码中访问 tokenProvider 时。它找不到。我正在添加图片请看一下。
我尝试了另一个选项来创建 class 并实现我的接口并调用 class
class getToken : ApplicationToken {
let accessToken: String = ""
let refreshToken: String = ""
}
_ = getToken()
但它给了我错误。我无法粘贴它,因为我在 xcode.
中不明白在为扩展(例如 fun SomeClass.extension()
)和全局变量生成代码时,就像您的情况一样,Kotlin 会创建一种与文件名相关的名称空间。
在您的情况下,您的 属性 应该在 PlatformKt.tokenProvider
之下。
通常当很难找到您的 kotlin 代码在 iOS 端的可见性时,检查框架头文件很有用。它应该放在附近的某个地方(将 shared
替换为您的框架名称):
shared/build/cocoapods/framework/shared.framework/Headers/shared.h
我更喜欢在我的 Xcode 项目中通过引用添加此文件,这样我就可以一直快速访问:
然后您可以轻松地在该文件中搜索您的 variable/class/etc 姓名。