When you set the delegate property of the CLLocationManager and implemented the two location-finding methods in WhereamiViewController, you were using a design pattern called delegation. This is a very common pattern in Cocoa Touch, and many classes have a delegate property.
Delegation is an object-oriented approach to callbacks. A callback is a function that is supplied in advance of an event and is called every time the event occurs. Some objects need to make a callback for more than one event. For instance, the location manager wants to “callback” when it finds a new location and when it encounters an error.
However, there is no built-in way for two (or more) callback functions to coordinate and share information. This is the ...