我们可以很容易地使用Qt 中的 Objective-C 和 C++ https://stackoverflow.com/questions/23404158/qt-run-object-c-code/23404257#23404257.
观看了 Apple WWDC 2015 的许多演讲后,我预计 Swift 将取代 Objective-C 进行 OS X(和 iOS)开发;所有演示都使用 Swift。
考虑到您可以通过桥接头一起使用 Objective-C 和 Swift,是否可以在 Qt 项目中编译 Swift 代码并使用 C++ 访问 Swifts 第一类对象(类、结构、枚举等)?
如果可能...
从 Qt 调用 Objective-C 函数需要将代码包装在 C 函数中,并带有要从 Qt 调用的 C 标头。
从 Objective-C 调用 Swift 需要一个桥接标头来指示哪些 Swift 文件可用。然后在 XCode 项目中引用该标头;我们可以在 Qt .pro 中做到这一点吗?如果可以,怎么做?
假设我们可以指定桥接头,我们仍然只能从 Objective-C 文件调用 Swift,但是在 C++ 中可以直接从 Qt 调用 Swift 吗?
从 Qt 调用 Objective-C 函数需要将代码包装在 C 函数中,并带有要从 Qt 调用的 C 标头。
这并不完全正确,Obj-C 和 Obj-C++ 函数和方法可以直接从 Obj-C++ 调用。鉴于 Obj-C++(大部分)是 C++,Qt 和 Obj-C/C++ 之间的接口是微不足道的。您可以简单地将 Qt 实现文件命名为 .mm 而不是 .cpp!您可以直接从 Obj-C 方法实现调用 Qt 或标准 C++,编译为 Obj-C++ 文件(.mm,而不是 .m),反之亦然。
有一种方法可以引导 swift 编译器为您生成桥接标头,并且可以将其作为自定义编译器或自定义目标集成到 .pro 文件中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)