有人可以解释为什么这会导致标题中所述的错误?

CGFloat dx = fabs(lastPoint.x - currentPoint.x);

谢谢

有帮助吗?

解决方案

fabs() 返回a double (64位),但 CGFloat 被定义为 float (32位)。这通常是无害的 - 我个人甚至会禁用编译器警告,因为使用 double 值通常是 至少 就像使用一样快 float 值。

其他提示

一个更好的答案是使用 #include <tgmath.h>. 。该标头定义“自适应”函数,这些函数可在任何参数大小上调用正确的函数。

包含该标头,您可以简单地致电 fabs 没有得到警告(也不担心由于使用错误功能而导致的精确度丧失)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top