It doesn't work. (Not that I had tried before you pointed it out, I knew about the isa swizzling but I didn't know `object_getClass()` bypassed it)

I guess it's because the dynamic subclass KVO creates doesn't implement `-willChangeValueForKey:` and `-didChangeValueForKey:` at all since `NSObject` already has the default implementation.

Which kind of makes me wonder whether we could just swizzle `NSObject`. I expect all overridden implementations of those two methods will call `super` at some point.