unsignedint count = 0; // 拷贝出所胡的成员变量列表 Ivar *ivars = class_copyIvarList([UITextFieldclass], &count); for (int i = 0; i<count; i++) { // 取出成员变量 Ivar ivar = *(ivars + i); // 打印成员变量名字 LXFLog(@"%s", ivar_getName(ivar)); // 打印成员变量的数据类型 LXFLog(@"%s", ivar_getTypeEncoding(ivar)); } // 释放 free(ivars);
Swift的写法如下
swift
1 2 3 4 5 6 7
varcount: UInt32 = 0 let ivars = class_copyIvarList(UIViewController.self, &count)! for i in0..<count { let namePoint = ivar_getName(ivars[Int(i)])! let name = String(cString: namePoint) print(name) }