Possible Duplicate:
Difference between protocol and delegates?
Is there any difference between Protocol and Delegates?
If they are same why do we need two doing the same?
When to use Delegate and when to use Protocol.
I am new to Objective-C and Iphone programming. So please bear with me.
A protocol is an interface that a class can conform to, meaning that class implements the listed methods. A class can be tested for conformance to a protocol at compile-time and also at run-time using the conformsToProtocol:.. NSObject method.
A delegate is a more abstract term that refers to the Delegation Design Patten. Using this design pattern, a class would have certain operations that it delegates out (perhaps optionally). Doing so creates an alternative to subclassing by allowing specific tasks to be handled in an application-specific manner, which would be implemented by a delegate.
They are related terms because you often see a Protocol created for the purpose of delegation. If I wanted to allow a delegate to sort something, I’d create a Protocol with a required method listed such as “sortMyCoolStuff:..” and I would require the delegate to implement it. That way, within class that supports calling to a delegate, I can accept a pointer to a delegate and then can say “if that delegate conforms to myCoolProtocol, I know it implements sortMyCoolStuff, so it’s safe to call that method instead of doing my built in behavior”