An Introduction to Delegates

If you delegate a task to someone else, you essentially appoint that person to perform that task on your behalf while you’re busy doing something else. It’s the handoff, the passed buck, the get-it-out-of-my-inbox move. To delegate successfully, you need to specify who that delegate is and what it is you want that delegate to perform for you.

In the case of the UIApplication object at launch time, one of its built-in tasks is to hand off the job of completing the rest of the app’s loading to a class in your project. To trigger that job, UIApplication sends a very specific, standardized message to the object appointed as the delegate. It turns out that UIApplication—in its role as Central Control—can delegate a variety of jobs. For instance, in addition to signaling when the app is being started, UIApplication can also signal when the app is about to quit so the app can preserve its current state to restore the next time the app launches (code that you would write). Starting with iOS 4, UIApplication signals when an app is going to be sent to the background and reawakened under Fast App Switching so your code can suspend and restart ongoing processes (e.g., downloads) automatically for the user. The messages UIApplication is designed to send to its delegate are codified in a protocol named the UIApplicationDelegate protocol.

A class must declare in its header that it is available as a UIApplication delegate—it is wired to handle delegate messages that ...

Get Learning the iOS 4 SDK for JavaScript Programmers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.