Wes*_*loy 3 objective-c objective-c++ swift
可以在Objective-C++(.mm)文件中调用Swift代码吗?有没有简单的解决方法,如果没有?
我有一个Xcode项目,它是Swift,Objective-C和C++的混合体.我没有问题从Objective-C到Swift用-Bridging-Header.h或从Swift到Objective-C用-Swift.h.
但我有一个.mm文件,它是Objective-C++.当我尝试#import "[ProductName]-Swift.h"它时会在-Swift.h文件中抛出许多编译错误,例如:
找不到'NSApplicationDelegate'的协议声明,你的意思是'NSConnectionDelegate'吗?
没有名为'NSTableViewDataSource'的类型协议
等等...
我已经研究了其他几个类似的问题,例如我可以将Swift与C++混合使用吗?就像Objective - C .mm文件一样,它似乎没有给我一个明确的答案或解决方案.
在我看来,我目前的解决方法是在Objective-C中创建一个使用Swift代码然后将其导入Objective-C++代码的包装器对象.
我刚刚成功编译了一个.mm文件,通过添加-fcxx-modules标志来调用swift .<Module>-Swift.hXcode生成的文件包括@import并检查模块支持.从这个答案中找到了标志:https://stackoverflow.com/a/20708695/2570853.
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |