大型 App 由于跨平台的需要,底层一般会采用 C++来实现,当时再往上到应用层的话基本都会用对应平台的语言,比如 Windows 可能会用 C#,Android 用 Kotlin,iOS 用 Swift。
我这里主要想探讨一下 Swift 与 C++ 混合编程最佳实践。
由于 Swift 无法直接调用 C++,所以不得已需要引入一个中间层包装 C++代码。
目前实践过两种方法
第一种做法比较自然,也是苹果教的方法。
但是存在一个问题,因为 Objective-C 都是以面向对象为导向的,所以封装 C++代码时 就需要用对象方式 在 Objective-C 中 建立模型。但是我其实希望 Objective-C 这一层尽量的薄,我们应该把所有的模型建立在 Swift 这一层,这样才能让代码的可维护性更好。
这样 就引出 第二种方式,直接用 C 封装 C++,仅仅是最简单的封装导出,而所有的对象模型建立在 Swift 这一层。目前感觉这种方式是优于第一种方式的。
不知道各位还有其他更好的方法不?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.