1.動態(tài)變量控制
1> 、 首先創(chuàng)建一個Person類
2>、創(chuàng)建VC實現(xiàn)動態(tài)變量控制
#import "oneViewController.h"#import "Person.h"#import@interface oneViewController ()
@property (weak, nonatomic) IBOutlet UITextField *textfield;
@property (nonatomic, strong) Person *person;
@end
@implementation oneViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.person = [Person new];
_person.name = @"xiaoming";
NSLog(@"XiaoMing first answer is %@",self.person.name);
}
- (void)sayName
{
unsigned int count = 0;
Ivar *ivar = class_copyIvarList([self.person class], &count);//count獲取Person的屬性個數(shù),為2;
for (int i = 0; i<count; i++){
Ivar var = ivar[i];
const char *varName = ivar_getName(var);//獲取屬性名稱
NSString *proname = [NSString stringWithUTF8String:varName];//C字符串轉(zhuǎn)換
if ([proname isEqualToString:@"_name"]) {? //這里別忘了給屬性加下劃線,通過屬性名稱
object_setIvar(self.person, var, @"daming");//object_setIvar(類名, 屬性名稱, 變更后的名稱)
break;
}
}
NSLog(@"XiaoMing change name? is %@",self.person.name);//已成功通過runtime更改屬性的值
self.textfield.text = self.person.name;
}
3>、效果如下: