Message swizzling/monkey patching is a hack that tries to deal with the reality of not being able to modify base classes you don't have the source code for and creates all sorts of surprise bugs.
If objective-c had proper support to do it via categories that can 'over-ride' methods it would be a lot cleaner in general.