title: Swift isa pointer remapping or other supported method swizzling
body: <p>Do Swift classes have something like an isa pointer that can be remapped? </p>
  
  <p>We've seen that Swift <a href="https://stackoverflow.com/a/24020950/404201">uses a more static method dispatch</a> than objective-C, which (unless a class dervices from Foundation/NSObject) prevents the style of swizzling based on remapping method implementations at runtime.</p>
  
  <p>I'm wondering how we'll implement method interception-based dynamic features like the observer pattern, notifications, etc? Currently all this stuff is provided by the Objective-C layer, and can be easily integrated into Swift. But, if we want to provide these kinds of features in a framework (or app) of our own, is it necessary to implement them in Objective-C? I would assume there's a way to do it 'natively'. </p>
  
  <p>Another kind of swizzling common to objective-C is remapping the isa-pointer to generate a sub-class on the fly. Is this kind of swizzling supported in Swift? If not what <strong><em>is</em></strong> the supported way of intercepting arbitrary method invocations?</p>
  
  <p><strong>Edit:</strong> <em>As @jatoben points out, as of arm64 isa-remapping must be done by calling object_setClass() and not by accessing the value directly. This is still referred to as 'isa pointer swizzling'</em></p>