class_getInstanceMethod возвращает ноль - PullRequest
0 голосов
/ 05 сентября 2018

Я читал о методе Swizzle в Swift. Попытка понять метод class_getInstanceMethod, но он не работает.

class Abc {

func testing() {
    print("testin...")
}

   func check() {
    print("check")
    let originalSelector = Selector.init(("testing"))
    let originalMethod = class_getInstanceMethod(Abc.self , originalSelector)
    print("\(String(describing: originalMethod))")
  }
}  

 let a = Abc()
  a.check()

1 Ответ

0 голосов
/ 05 сентября 2018

Вам просто нужно изменить Selector. Также необходимо добавить тег @objc в testing(). Это сработало. Я проверял.

class Abc {

    @objc func testing() {
        print("testin...")
    }

    func check() {
        print("check")
        let originalMethod = class_getInstanceMethod(Abc.self , #selector(self.testing))
        print("\(originalMethod))")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...