我现在正在做一个类似的项目(将一个C++库移植到iOS和Android上)。
唯一明智的方法是将您的Rust接口 extern "C"
并编写一个简单的.h文件,然后为其创建一个简单的ObjC类包装。然后将#import <someframework/someframework.h>
弹出Objective C到Swift绑定头文件中,一切都可以正常工作。
这有点乏味,但实际上并不需要太多的工作。只有当您尝试在边界之间传输复杂对象时才会变得痛苦,这会导致编写一堆结构体,然后一切都变得很困难。我建议您避免这样做,坚持使用原始类型和数组。
如果您的模型比这更复杂,请考虑像其他人所说的那样使用IPC,尽管在实践中可能会更加痛苦。
所以,是的,有点乏味。不过好消息是,这确实可行。 :)