A protocol is a contract that declares a set of methods, which a class must implement. Protocols are equivalent to a Java interface (not to be confused with the Objective-C interface file). In this way, you can ensure that objects of various classes all respond to a particular message.
A protocol defines a set of methods a class must implement. When a class adopts a protocol, it needs to provide a body for each method defined in the protocol or the Xcode compiler will produce a warning. Protocols are used to guarantee that objects of different classes respond to a particular message.
Required Versus Optional Methods ...