Вернуть все свойства объекта в Objective-C - PullRequest
10 голосов
/ 09 марта 2010

Можно ли вернуть список всех свойств, реализованных объектом в Objective-C? Я понимаю, что свойства - это просто методы получения и установки, поэтому я не уверен, как это будет работать. Если это невозможно сделать, то возможно ли вернуть все селекторы, на которые будет реагировать объект? Я ищу что-то похожее на метод "методов" в Ruby.

Ответы [ 2 ]

19 голосов
/ 09 марта 2010
// 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);
1 голос
/ 09 марта 2010

Я действительно пробовал это вчера, и это возможно, однако вы не можете получить все из UIView. Взгляните на Objective-C Runtime Reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...