Czy możliwe jest ustalenie, skąd w hierarchii klas pochodzi metoda pobrana przez class_getInstanceMethod
? Na przykład, powiedz klasa A implementuje myMethod. Teraz mówię, że mam podklasę klasy A w klasie A1. Jeśli zadzwonię pod numer class_getInstanceMethod(ClassA1, myMethod)
, czy można stwierdzić, czy otrzymana metoda została nadpisana w klasie A1, czy pochodzi bezpośrednio z A1?Using class_getInstanceMethod - gdzie jest metoda zaimplementowana w hierarchii klas?
Przypuszczam, że byłoby to możliwe, aby porównać adresy pamięć o IMP gdybyś miał dostęp zarówno ClassA i ClassA1, ale nie mają bezpośredniego dostępu do A.
to jest niesamowite –
to zawiedzie dla obiektów, które nie podklasa 'NSObject', takich jak' NSProxy'. Tylko uwaga. –
@ RichardJ.RossIII Zobacz zaktualizowane. :) –