我正在尝试UIImage.init(named:)
,但未调用init
extension UIImage {
@objc public convenience init?(swizzledName: String) {
self.init(named: swizzledName)
/// Do something
print("this is working")
}
static func swizzle() {
guard let instance = class_getClassMethod(self, #selector(UIImage.init(named:))),
let swizzledInstance = class_getClassMethod(self, #selector(UIImage.init(swizzledName:))) else { return }
method_exchangeImplementations(instance, swizzledInstance)
}
}
UIImage.swizzle()
let image = UIImage(named: "avatar")
👆不起作用
convenience init
方法一起使用。但是您可以创建一个静态方法,然后使用该方法。