You are assigning a pointer to another pointer. So you are actually just storing a reference to the MKUserLocation
's location.
It sounds like you want to store the value at that time, not wanting it to change. If so:
self.currentLocation = [self.mapView.userLocation.location copy];
Storing a copy should get you what you want.