Возможно ли вернуть список всех свойств, реализованных объектом в Objective-C? Я понимаю, что свойства - это просто геттеры и сеттеры, поэтому я не уверен, как это будет работать. Если это невозможно сделать, можно ли вернуть все селекторы, на которые будет реагировать объект? Я ищу что-то похожее на метод методов в Ruby.
Возвращает все свойства объекта в Objective-C
Ответ 1
// Get properties list
objc_property_t* class_copyPropertyList(Class cls, unsigned int *outCount);
// Get methods list
Method* class_copyMethodList(Class cls, unsigned int *outCount);
Следующий код выводит все методы, реализованные в классе UIImage, на консоль:
unsigned int count;
Method* methods = class_copyMethodList([UIImage class], &count);
for (size_t i = 0; i < count; ++i)
NSLog([NSString stringWithCString:sel_getName(method_getName(methods[i]))]);
free(methods);
Ответ 2
Я действительно пытался это вчера, и это возможно, однако вы не можете получить все от UIView. Взгляните на Objective-C Справочник по времени выполнения