我跟随Swift和Objective-C运行时 ,它适用于正常的方法。 我喜欢swizzle init方法,从我的理解来看,init就像是一个类方法。 所以我尝试作为实例和类方法swizzling初始化。 但似乎没有工作 我可以使用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); } }