7
A
回答
4
你只需要獲得的方法列表,尋找您想要的:
#import <objc/runtime.h>
BOOL hasMethod(Class cls, SEL sel) {
unsigned int methodCount;
Method *methods = class_copyMethodList(cls, &methodCount);
BOOL result = NO;
for (unsigned int i = 0; i < methodCount; ++i) {
if (method_getName(methods[i]) == sel) {
result = YES;
break;
}
}
free(methods);
return result;
}
class_copyMethodList
只返回被直接定義在有問題的類,而不是超方法,使應是你的意思。
如果您需要分類方法,請使用class_copyMethodList(object_getClass(cls), &count)
。
+0
非常好,非常感謝! – cfischer
相關問題
- 1. AS3反射。如何找出一個方法是否被覆蓋?
- 2. 查找覆蓋方法
- 3. 覆蓋方法,如果類是DLL
- 4. 是否可以找出函數navigator.plugins是否被覆蓋
- 5. 調用覆蓋方法,超類調用覆蓋方法
- 6. Ruby覆蓋類方法
- 7. 覆蓋ActiveRecord類的方法
- 8. 覆蓋方法 - 類變量
- 9. 覆蓋基類方法
- 10. 如何覆蓋類方法
- 11. 是否可以使用Dexmaker從現有類中覆蓋方法?
- 12. 如何檢查Groovy類是否覆蓋父母的方法
- 13. 是否必須覆蓋最終類的equals()和hashCode()方法
- 14. 是否有可能檢測父方法是否被覆蓋?
- 15. 覆蓋方法
- 16. 覆蓋方法
- 17. 覆蓋方法
- 18. 覆蓋方法
- 19. 覆蓋'+'方法
- 20. 是否在ObjectiveC中調用超類問題的方法?
- 21. 覆蓋Child類中的ParentModel類方法
- 22. 覆蓋基類模板類方法
- 23. Java基類和子類方法覆蓋
- 24. 覆蓋Python類__str__方法的最佳方法是什麼?
- 25. Java方法覆蓋 - 「方法不會覆蓋超級方法...」
- 26. 無法覆蓋LocationListener類的方法
- 27. 覆蓋方法`GetSizeForItem`返回「找不到合適的方法覆蓋」
- 28. Ember數據覆蓋查找方法
- 29. 覆蓋派生類中已覆蓋的方法
- 30. 覆蓋touchesBegan:錯誤 - 方法不會覆蓋超類中的任何方法
請說明。你在說什麼在文檔中查找什麼?某種運行時檢查?什麼? – rmaddy
@rmaddy他明確要求檢查一個子類是否包含在其超類中聲明的方法的自定義實現。問題還包含objective-c運行時標籤。 –
@DominikHadl是的,這正是我想要的。我想在運行時做到這一點。假設我沒有上述課程的文檔。 – cfischer