私はSwift と Objective-C Runtimeに従っています。通常のメソッドで動作します。
私の理解では、init はクラス メソッドのようなものです。ということで、init をインスタンスとクラスメソッドとしてスウィズルしてみました。しかし、うまくいかないようです
Objective C を使用して動作させることができますが、Swift で動作させる方法を知りたいだけです
私の要旨から抜粋
dispatch_once(&Static.token) {
let originalSelector = Selector("init:source:destination:")
let swizzledSelector = Selector("ftg_init:source:destination:")
let originalMethod = class_getClassMethod(self, originalSelector)
let swizzledMethod = class_getClassMethod(self, swizzledSelector)
let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))
if didAddMethod {
class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
} else {
method_exchangeImplementations(originalMethod, swizzledMethod);
}
}