2009-11-23 8 views

ответ

0

Не рядом Xcode прямо сейчас, но попробуйте:

double distanceA = (double) fabsf(target - current); 
+0

Я думаю, что это помогло немного улучшить производительность. Спасибо. –

+1

Я бы подумал, что это просто делает явным то, что неявно уже было (cast from float to double)? Как это улучшило бы что-нибудь? (не snarky, я ничего не знаю о какао) – Mikeb

+0

Ха-ха, я действительно не знаю. IIRC, Xcode не нравится, когда вы не произносите значение явно. Возможно, в Шарке с флагом. Это была единственная (псевдо) ошибка, о которой я мог думать. –

6

Если у вас есть необходимость в двойной точности в вашем расстоянии, изменение расстояния до поплавка. CGFloat определяется как float на iPhone, а fabsf() принимает значение float и возвращает значение float. IPhone может быть значительно медленнее при обработке значений двойной точности, чем стандартные поплавки.

На самом деле, нет смысла использовать двойную точность для переменной расстояния, поскольку вы уже потеряли точность, выполнив вычисления с помощью функции fabsf(), которая возвращает только float.

Смежные вопросы