iOS does not scream at me when I pass in NULL
or nil
to the completion block in animateWithDuration:animations:completion:
but does that mean it's okay? Or is it better to open an empty ^{ }
?
This is okay as long as you can trust that the code to which you are passing the nil
won't try to call it as a block.
A quick demonstration:
typedef void (^GenericBlock)(void);
void useThisBlock(GenericBlock block){
block();
}
useThisBlock(^{NSLog(@"All okay.");});
useThisBlock(nil); // Compiles but crashes
The inner code must check the block first: if( block ) block();
In the case of UIKit code, you should be fine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With