gpt4 book ai didi

swift - 在 Swift 代码中使用 Rust 库的最佳方式是什么?

转载 作者:IT王子 更新时间:2023-10-29 05:10:20 28 4
gpt4 key购买 nike

我希望能够在 Swift 中使用 Rust 对象,在 Rust 对象更改/事件发生时以某种方式通知 Swift,并利用 Swift 的 ARC 使 Rust 对象保持事件状态。

到目前为止,我想到的是为 Rust 对象编写一个普通的 C API,然后为 C API 编写一个 Objective-C 包装器,然后将其导出到 Swift,如下所示:

adapting adapters

有没有更简单的方法?可以自动生成包装函数和C头文件的东西?

最佳答案

我现在正在做一个与此类似的项目(移植一个 C++ 库以在 iOS 和 Android 上运行)。

唯一明智的做法是 extern "C"你的 Rust 接口(interface)并为它编写一个简单的 .h 文件,并为它们创建一个简单的 ObjC 类包装。然后弹出 #import <someframework/someframework.h>进入 Objective C 到 Swift 绑定(bind) header ,一切正常。

这有点乏味,但实际上并没有那么多工作。如果您尝试跨边界传输复杂对象,这只会变得很痛苦,这会导致编写一堆结构,然后一切都会走下坡路。我建议您不要那样做,坚持使用基元和数组。

如果您的模型比这更复杂,请考虑像其他人所说的 IPC 之类的东西,尽管这在实践中可能会更加痛苦。

是的,很乏味。不过,好消息是这确实有效。 :)

关于swift - 在 Swift 代码中使用 Rust 库的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32538097/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com