I have created a protocol that my classes need to implement, and then factored out some common functionality into a base class, so I did this:
@protocol MyPr
In your protocol definition, you need to declare your methods under the @optional keyword.
@optional
Your code should look like this:
@protocol MyProtocol @optional - (void) foo; - (void) bar; @end
See this question on SO.