日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kotlin Native新增Objective-C互操作能力以及对WebAssembly的支持

發布時間:2023/12/19 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kotlin Native新增Objective-C互操作能力以及对WebAssembly的支持 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據JetBrains技術主管Nikolay Igotti的介紹,Kotlin/Native 0.4已經可用于為iOS和macOS開發原生應用。此外該版本還為WebAssembly平臺提供了實驗性支持。

\\

Kotlin/Native對iOS/macOS開發的支持,關鍵在于實現了與Objective-C的互操作性。JetBrains目前已經發布了一個非常簡單的演示應用,該應用使用Kotlin編寫,已發布至Apple Store和Google Play。

\\

下列代碼片段展示了訪問iOS框架的方式:

\\\import kotlinx.cinterop.*\import platform.Foundation.*\import platform.objc.*\import platform.osx.*\fun readResource(resourceName: String): ByteArray {\ val filePath = NSBundle.mainBundle.pathForResource(resourceName, ofType = null)\ val fileData = NSData.dataWithContentsOfFile(filePath!!)\ ?: throw Error(\"failed reading resource $resourceName\")\ return fileData.bytes!!.readBytes(fileData.length.toInt())\}\\\

這一切都是通過新的platform實現的,并通過庫實現了對底層操作系統接口的訪問。借此便可以使用提供了POSIX OS層的平臺執行各類操作,如調用fopen、fread等。以前與底層平臺的互操作則需要專門生成的Interop Stub。

\\

新版的另一個新功能對象固定(Object pinning),主要是為了簡化通過C API使用Kotlin對象的方式,借此可以確保通過C API消費的對象能夠鎖定到內存中。

\\

Kotlin/Native現已開始支持WebAssembly,因此可以通過Kotlin開發基于瀏覽器的應用。但根據Igotti的介紹,由于瀏覽器支持方面的局限,這種支持目前依然是實驗性質的。

\\

在工具方面,調試功能現已支持在運行時檢查大部分變量。此外同樣重要的是,還通過一個新的插件讓CLion可以支持Kotlin/Native。

\\

Kotlin/Native是Kotlin的最新成果,可用于將最初僅僅基于JVM的語言Kotlin編譯為無需虛擬機即可運行的原生庫。因此該技術非常適合諸如iOS等平臺以及嵌入式設備等不能或者無法運行虛擬機的環境。Kotlin/Native目前已經可以支持Windows、Linux、macOS、iOS、Android和WebAssembly。

\\

閱讀英文原文:Kotlin Native Adds Objective-C Interop, WebAssembly Support

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Kotlin Native新增Objective-C互操作能力以及对WebAssembly的支持的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。