在我的项目中,我有一个只有 C 函数的 doSomething.m 和 soSomething.h 文件:
void doSomething() {
}
第一个问题:我应该怎么做才能让这个函数在我的代码中的任何地方都可以访问,而不需要导入任何头文件?
注意:我猜想解决这个问题 doSomething.h 文件根本不需要,但它的存在/不存在不是限制。
我有以下知识,但我无法全面了解所需内容:
- 我可以使用另一个带有属性((构造函数))的函数,它将在编译运行时运行,它可以做一些操作来注册doSomething;
- _class_addMethod_ 在“运行时”添加方法。但我不知道如何解决“全局命名空间的类”;
- NSObject 的+ 加载方法,但在这里不相关。
第一个问题之上的第二个棘手问题:当我对第一个问题有答案时,我怎样才能防止“函数'doSomething'的隐式声明在C99中无效”完全针对函数doSomething而不是针对所有其他问题?
更新:我忘了从考虑中排除以下选项:
- .pch 文件,全局标头
- 我要使用doSomething方法的文件不应包含任何附加声明,例如extern void doSomething()