During the free fall the iphone is supposed to send acceleration values as 0 on all the three axis. So how to detect the distance covered by the iphone?
The most simple and naive implementation is to sample the accelerometerdata and use the following formula.
v+=a*dt; d+=v*dt;
But this is can give drift over time, read this for explanation why and a better solution: http://gafferongames.com/game-physics/integration-basics/