iOS runtime動態(tài)變量控制

1.動態(tài)變量控制

1> 、 首先創(chuàng)建一個Person類

.h文件
.m文件

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>、效果如下:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 對于從事 iOS 開發(fā)人員來說,所有的人都會答出【runtime 是運行時】什么情況下用runtime?大部分人能...
    夢夜繁星閱讀 3,732評論 7 64
  • runtime再實際開發(fā)中主要應(yīng)用 1.動態(tài)添加一個類 2.通過runtime獲取一個類的所有屬性,我們可以做些什...
    十里杏坡閱讀 784評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,937評論 18 139
  • map----映射--適合轉(zhuǎn)換reduce---匯總--一個filter---過濾--適合篩選forEach---...
    noyanse閱讀 242評論 0 1
  • 尋你,立在懸崖峭壁之上 不能上,不能下,只能前 墜落,無盡的深淵,惶恐 瞬間,深淵變成遼闊草原 身邊,一群惡狼在咆...
    平生隨煙雨閱讀 153評論 0 0