By default, all the methods declared in a protocol are required. This means that any class that conforms to this protocol must implement those methods.
It is also possible to declare optional methods. These method can be implemented only if needed.
You mark optional methods with the
@protocol NewProtocol - (void)protocolMethod:(id)argument; @optional - (id)anotherMethod; @end
In this case, only
anotherMethod is marked as optional; the methods without the
@optional directive are assumed to be required.
@optional directive applies to methods that follow, until the end of the protocol definition or, until another directive is found.
@protocol NewProtocol - (void)protocolMethod:(id)argument; @optional - (id)anotherMethod; - (void)andAnotherMethod:(id)argument; @required - (void)lastProtocolMethod; @end
This last example defines a protocol with two optional methods and two required methods.