獲取某個(gè)類里的所有方法名稱
利用runtime獲取方法名伟姐,首先需要導(dǎo)入runtime頭文件 <objc/runtime.h>喧兄,以下是具體的代碼實(shí)現(xiàn):
/** 獲取某個(gè)類里的所有方法名 cls:傳真正的類名 */
- (void)printMethodNamesOfClass:(Class)cls{
unsigned int count;
/** 獲得方法數(shù)組 */
Method *methodList = class_copyMethodList(cls, &count);
// 存儲(chǔ)方法名
NSMutableString *methodNames = [[NSMutableString alloc] init];
/** 遍歷所有的方法 */
for (int i = 0; i < count; i++) {
/** 獲得方法名 */
Method method = methodList[i];
/** 獲得方法名 */
NSString *methodName = NSStringFromSelector(method_getName(method));
/** 拼接方法名 */
[methodNames appendFormat:@"%@, ",methodName];
}
/** 釋放(因?yàn)槭荂語(yǔ)言函數(shù),所以需要手動(dòng)的內(nèi)存管理蝶糯,釋放內(nèi)存) */
free(methodList);
NSLog(@"%@ %@",cls,methodNames);
}
使用
[self printMethodNamesOfClass:object_getClass(self.person)];