fabs()在模块下不起作用

时间:2013-10-27 21:59:51

标签: ios objective-c

我在appStore上有较旧的应用程序。我想为iOS 7更新它,所以我在Xcode 5下打开它并在Build Settings下打开objective-c模块。没有它,编译速度很慢。

但这会导致fabs()函数出现问题,我在* -Prefix.pch文件中定义了一个makro:

#define IS_IPHONE_5 (fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON)

当我打电话给这个makro时,它会导致错误,感谢fabs()函数:

错误:被调用的对象类型'int'不是函数或函数指针
警告:C99中函数'__tg_promote1'的隐式声明无效 警告:函数'__tg_fabs'的隐式声明在C99中无效

当我关闭模块时,一切都像以前一样正常。

有任何帮助吗?我对此非常绝望。 感谢。

1 个答案:

答案 0 :(得分:6)

  • CGRect是{CGPoint,CGSize}。 CGSize是{CGFloat,CGFloat}。 CGFloat是float的typedef,而不是double。

  • fabs被声明为extern double fabs(double)

将#define更改为:

#define IS_IPHONE_5 (fabsf( [ [ UIScreen mainScreen ] bounds ].size.height - ( CGFloat )568.0 ) < FLT_EPSILON)