我正在尝试混合 UIImage
初始化函数,但是当尝试获取实例函数时,它们返回 nil。任何想法?
let instance = class_getInstanceMethod(self, #selector(UIImage.init(named))
let instanceWithBundle = class_getInstanceMethod(self, #selector(UIImage.init(named:in:with)
最佳答案
它返回 nil,因为在 Objective-C 中它们实际上是类方法:
+[UIImage imageNamed:inBundle:withConfiguration:]
使用 class_getClassMethod
代替(并确保在方法选择器中的 named
和 with
之后添加冒号):
let imageNamedMethod = class_getClassMethod(UIImage.self, #selector(UIImage.init(named:)))
let imageNamedInWithMethod = class_getClassMethod(UIImage.self, #selector(UIImage.init(named:in:with:)))
关于ios - Swizzling UIImage.init(名为 :) returns nil when getting the instance method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60024197/