求教,用kotlin-native写iOS的大神们求教一下~~


#1

有个事情请教一下大家。
我正在用kotlin写一个通用在android和iOS的数据处理的工具,
在研究的过程中我都是新建一个jvm的项目来写方法,一切都很美好,然后把这些方法放到kotlin/native的项目的时候,发现好多方法没有~~~
发现例如: @kotlin.internal.InlineOnly
public inline fun String.toByteArray(charset: Charset = Charsets.UTF_8): ByteArray = (this as java.lang.String).getBytes(charset)
好像是这种直接用了java方法的时候,会告诉我没有这个方法,我也import不了~~~是不是这种直接用了java的方法在native中是用不了的????
很苦恼~~~
之前不是主要开发android的,所以对gradle、依赖之类的不了解,望有前辈讲解讲解~~~
是不是我的依赖不对?


#2

Kotlin-Native 是要编译成机器码的,然后直接运行,因此没有 Java 虚拟机,换句话说,Kotlin-Native 与 Kotlin-Jvm 的运行环境是不一样的,因此所有 Java 的东西都不能用。

是的,你没看错,不能用。

如果你想要编写跨平台代码,那么就用 kotlin multiplatform,标准库是 kotlin-stdlib-common,这个里面的方法都是得到了跨平台支持的,可以随意使用。(kotlin-stdlib 或者 kotlin-stdlib-jdk 是jvm的标准库,kotlin-stdlib-js 是 js 的标准库。)


#3

谢谢解答!!
噢噢噢,最近了一直在看,也发现了~~用到 kotlin multiplatform ,标准库里面就没有那些方法~~
看来跨平台的路还是不好走啊~~
怪不得首页那里写着,kotlin/native达到beta版~~果真如此。


京ICP备16022265号-2 Kotlin China 2017 - 2018