You don't have to write the check it is just defensive programming you can just do

 -(void)someMethod {
      if ( [delegate operationShouldProceed] ) {
             // do something appropriate

 } }

then if the delegate does not have operationShouldProceed you get a selector not found error - which will crash the program. So similar to smalltalk except that would get a debugger here.

So depends how certain you have a good delegate or if there is something you can do if you don't.

Mark

On 16/07/2014 09:58, stepharo wrote:
I found strange to force user to write

Before invoking a delegation method, make sure the delegate implements
it by sending it a

respondsToSelector: message.

Cocoa Fundamentals Guide (TP40002974 6.0.0)

- (void)someMethod {

if ( [delegate respondsToSelector:@selector(operationShouldProceed)] ){

         if ( [delegate operationShouldProceed] ) {
             // do something appropriate

} }

}

I'm reading also on bindings (could be like valueHolder) and targetAction.
I think that I will have to read that several times :)

https://developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaFundamentals.pdf

Stef

Cocoa Fundamentals Guide (TP40002974 6.0.0)
On 16/7/14 10:48, stepharo wrote:
Hi

In the quest for a better UI framework :), I was re rereading about
delegate in Cocoa.
A delegating object will delegate certain operations to a delegate
object (check the attachment).
Now I was wondering why this is not a simple delegation they wrote:

The delegating object sends a message only if the delegate implements
the method. It makes this discovery by invoking the NSObject method
respondsToSelector: in the delegate first.

Cocoa Fundamentals Guide (TP40002974 6.0.0)




--
Mark


Reply via email to