title: Why do unimplemented optional protocol methods cause runtime errors when that method is called in obj-c?
body: <p>I have two classes that can act as a delegate of a third class, and both implement a formal protocol made entirely of optional methods.  One of the classes implements everything while another only implements a couple methods that i care about.  However, at runtime when i have the second class act as the delegate to the third class, and the third class ends up calling one of the unimplemented optional methods on that delegate, i get a runtime error essentially saying "Target does not respond to this message selector."  I thought that objective-c handled this case correctly, and that it would just do nothing if that method wasn't actually defined on the class.  Might there be something i'm missing?</p>