我该如何改进这段代码?

Ano*_*ser 1 iphone cocoa-touch

Shark告诉我,这是糟糕表现的热点:

double distanceA = fabsf(target - current);
Run Code Online (Sandbox Code Playgroud)

目标是CGFloat当前是CGFloat

我的其余计算依赖于双倍.也许有一些更聪明的方法可以做到这一点?

Bra*_*son 6

除非您需要距离的双倍精度,否则请更改浮动距离.CGFloat被定义为iPhone上的浮点数,fabsf()接受浮点值并返回浮点值.处理双精度值时,iPhone的标准浮动速度要慢得多.

事实上,对于你的距离变量使用双精度是没有意义的,因为你已经通过fabsf()运行计算而失去了精度,而fabsf()只返回一个浮点数.