我有一个头文件 (.h
),我在其中定义了一堆数学函数,例如这个计算大气折射的函数...
float calcAtmosRefraction(float h0) {
float ref = 0.0;
if (h0 > 85) {
ref = 0.0;
}
else if (h0 > 5) {
ref = (58.1 / tan(degToRad(h0)) - 0.07 / pow(tan(degToRad(h0)), 3) + 0.000086 / pow(tan(degToRad(h0)), 5)) / 3600;
}
else if (h0 > -0.575) {
ref = (1735 + h0 * (-518.2 + h0 * (103.4 + h0 * (-12.79 + h0 * 0.711)))) / 3600;
}
else {
ref = -20.772 / tan(degToRad(h0)) / 3600;
}
return ref; // in degrees
}
... 在我的主要UIViewController
实现文件中,我使用#import
添加 header 。它工作正常,我可以使用这些功能。当我想在不同的 UIViewController 中使用这些函数时会出现问题。
如果我不 #import
header ,我会得到一个 隐式声明
函数名称的警告,如果我对 header 执行 #import
,我会收到一个 duplicate symbol
错误。
最佳答案
实现此目的的一种方法是结合使用 .h
和 .m
文件:
您的 .h
应该如下所示:
extern float calcAtmosRefraction(float h0);
而您的 .m
应该具有上述内容。 #import
.h
文件,您就可以开始了。
另一种方法是将函数设置为static
,这样它就不会被重新声明。这种方法允许您只使用一个 .h
文件。
关于xcode - #将函数导入多个源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4776075/