是否可以返回Objective-C中对象实现的所有属性的列表? 我知道属性只是getter和setter所以我不确定它是如何工作的。如果无法做到这一点,那么是否可以返回对象将响应的所有选择器?我正在寻找类似于Ruby中“methods”方法的东西。
答案 0 :(得分:19)
// 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 :(得分:1)
我昨天实际上是在尝试这个,但是有可能,但是你无法从UIView获得所有东西。 看看Objective-C Runtime Reference