Protocol sample
ref:http://rypress.com/tutorials/objective-c/protocols.html
 Cocoa and iOS rely heavily on this concept of delegation. For example, when you set up a table on the iPhone’s display, UITableViewDataSource