Если вы хотите отслеживать прибыли и убытки отдельно, сохраняйте две совокупные переменные-члены, netElevationLoss и netElevationGain, обе инициализированные равными 0.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if(oldLocation == nil)
return;
double elevationChange = oldLocation.altitude - newLocation.altitude;
if (elevationChange < 0)
{
netElevationLoss += fabs(elevationChange);
}
else
{
netElevationGain += elevationChange;
}
}
Вы также можете отслеживать общее изменение, используя этот метод, так как
netElevationChange = netElevationGain - netElevationLoss
в любое время.