objective-c - Swift 不允许在 Objective-C 或 C 头文件中重载函数
问题描述
我有一些快速代码,这在问题的上下文中并不重要。我也有 Objective-C 桥接头 ObjC-Swift-Bridging.h:
#import "my_objective_cpp_header.h"
而且我在该标头中有免费的 C/C++ - 样式函数:
inline void foo() {
}
inline void foo(int i) {
}
当我尝试在启用了 swift 4.0 的 xcode 9.2 中编译它时,出现错误:
my_objective_cpp_header.h:29:13: error: redefinition of 'foo'
inline void foo(int i){
^
my_objective_cpp_header.h:26:13: note: previous definition is here
inline void foo() {
^
ObjC-Swift-Bridging.h:22:9: note: in file included from ObjC-Swift-Bridging.h:22:
#import "my_objective_cpp_header.h"
如果我将这些函数放在 C/C++ 头文件中并写入,也会发生同样的情况
#include "my_cpp_header.h"
进入 ObjC-Swift-Bridging.h
所以... Swift 不支持 Objective-C++ 中支持的代码?我错过了什么?
解决方案
推荐阅读
- servicestack - 当soap12格式错误时请求超时
- git - VSCode devcontainers:在同一个devcontainer中克隆第二个存储库时git权限被拒绝
- reactjs - WebStorm 无法识别 Next.js 项目
- azure - 验证我的 Azure 帐户会打开一个安全性无效的 localhost 网页
- mysql - 如何将cassandra和Mysql配置为spring boot?
- spring-mvc - SPRING MVC:获取从表单返回的键值:选择
- firebase - 从 Firebase Cloud Function 获取当前日期和时间
- java - 简化多个构造函数
- ubuntu-20.04 - Android VTS 在 ubuntu20.4.3LTS 上失败
- javascript - 在循环中调用 ajax,它不会执行 2 次