gpt4 book ai didi

objective-c - 在 objective-C++ 中调用 swift(.mm 文件)

转载 作者:可可西里 更新时间:2023-11-01 00:13:34 32 4
gpt4 key购买 nike

能否在 Objective-C++ (.mm) 文件中调用 Swift 代码?如果没有,是否有任何简单的解决方法?

我有一个混合了 Swift、Objective-C 和 C++ 的 Xcode 项目。使用 -Bridging-Header.h 从 Objective-C 转到 Swift 或使用 -Swift.h 从 Swift 转到 Objective-C 没有问题。

不过我确实有一个 .mm 文件,它是 Objective-C++。当我尝试 #import "[ProductName]-Swift.h" 时,它会在 -Swift.h 文件中抛出许多编译错误,例如:

Cannot find protocol declaration for 'NSApplicationDelegate', did you mean 'NSConnectionDelegate'?

No type protocol named 'NSTableViewDataSource'

等...

我研究了其他几个类似的问题,例如 Can I mix Swift with C++? Like the Objective - C .mm files但它似乎并没有给我一个明确的答案或解决方案。

在我看来,我目前的解决方法是在 Objective-C 中创建一个使用 Swift 代码的包装器对象,然后将其导入到 Objective-C++ 代码中。

最佳答案

我刚刚通过添加 -fcxx-modules 成功编译了一个调用 swift 的 .mm 文件旗帜。 <Module>-Swift.h Xcode 生成的文件包括 @import并检查模块支持。从这个答案中找出标志:https://stackoverflow.com/a/20708695/2570853 .

enter image description here

关于objective-c - 在 objective-C++ 中调用 swift(.mm 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33137589/

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