Если результат вызова timeIntervalSinceNow
отрицательный (это означает, что временная метка была в прошлом (что, в данном случае, всегда будет)), он будет преобразован в положительное число. Например, -2.5
станет +2.5
(и наоборот).
Затем вы проверяете значение инвертированного знака, чтобы увидеть, не превышает ли оно 5,0 - в этом случае это означает, что отметка времени была более пяти секунд назад. Если это так, вы ничего не делаете с данными о местоположении, потому что они слишком стары, чтобы быть полезными.
Лично я написал бы это без инверсии знака, используя отрицательное число в тесте:
if( [[newLocation timestamp] timeIntervalSinceNow] < -5.0 ) return;