Ans : Protocols are way to specify a set of methods that class has to implement if class want to work with this protocol. Protocol has 2 types of methods like Required type and Optional type methods.
1. If @required are tagged above methods, then these methods must be implemented on class which confirm this protocol.
2. If @optional are tagged above methods, then these methods is not necessary to implement on it.
Why it is used?
Protocol provide blueprint methods for classes. It has certain methods and parameters that classes have to implement in its body. Its like that classes should have certain characteristic if it confirm protocol. Like if you want to become human(class) you must be sleep, eat, breathe(characteristics).
For more detail,
I have created Delegate and Protocol. See example.
1. If @required are tagged above methods, then these methods must be implemented on class which confirm this protocol.
2. If @optional are tagged above methods, then these methods is not necessary to implement on it.
Why it is used?
Protocol provide blueprint methods for classes. It has certain methods and parameters that classes have to implement in its body. Its like that classes should have certain characteristic if it confirm protocol. Like if you want to become human(class) you must be sleep, eat, breathe(characteristics).
For more detail,
I have created Delegate and Protocol. See example.