CocoaChina中找到了一段OC中遍历所有属性的代码
int i;
int propertyCount = 0;
objc_property_t *propertyList = class_copyPropertyList([aPerson class], &propertyCount);
for ( i=0; i < propertyCount; i++ ) {
objc_property_t *thisProperty = propertyList + i;
const char* propertyName = property_getName(*thisProperty);
NSLog(@"Person has a property: '%s'", propertyName);
}
但是试了试似乎没法直接改写成Swift,propertyList那里得到的是UnsafeMutablePointer(nil)……
求正确的改写方式或者遍历方法……
可以使用
reflect()
来遍历一个实例里面所有的属性,除了 computed property 以外的所有属性都可遍历。没找到方法直接对 class 进行遍历,所以必须至少创建一个实例才能工作。示例代码:https://gist.github.com/huandu/d976f7994d2fd159398b