Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
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 problem addressed by delegation – we supply a single delegate to receive all of the event messages for a particular object. This delegate object can then store, manipulate, act on, and relay the related information as it sees fit.