Delegate is one of the simplest and flexible patterns in Cocoa.
A delegate is an object that acts on behalf of, or in coordination with, another object when that object encounters an event in a program.
Concepts in Objective-C Programming
By using delegate, you simplify the design and reduce the