Возвратите все свойства объекта в Objective C

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

10
задан Joe Cannatti 9 March 2010 в 15:18
поделиться

2 ответа

// 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);
19
ответ дан 3 December 2019 в 19:32
поделиться

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

1
ответ дан 3 December 2019 в 19:32
поделиться