1. agreed
2. thus, `NSStringFromSelector`
3. wouldn't really it's *easier* to call `else { [super ...` either way
4. faster - i think this is negligible

i would prefer keeping the check for all 3 parameters -- unless you can show that there is a non-negligible performance benefit by not doing so.