Я действительно запутался с этой проблемой.Что мне нужно сделать, это использовать некоторую функцию времени выполнения obj-c в моем проекте.Вот простой код в моем файле .m:
#import "Base.h"
#import <objc/runtime.h>
@implementation Base
- (void)someMethod {
NSUInteger numberMethods = 0;
Method *classMethods = class_copyMethodList([self class], &numberMethods);
for (int i = 0; i < numberMethods; i ++) {
classMethods[i]->method_name; //incomplete definition of type "struct objc_method"
}
@end
Я получил следующую ошибку: неполное определение типа "struct objc_method".После некоторой проверки файла objc / runtime.h я нашел что-то вроде этого:
некоторый код ...
typedef struct objc_method *Method;
... некоторый код ...
struct objc_method {
SEL method_name OBJC2_UNAVAILABLE;
char *method_types OBJC2_UNAVAILABLE;
IMP method_imp OBJC2_UNAVAILABLE;
}
Это что-то вроде проблемы с предварительным объявлением или что-то еще?