iOS中 runtime 運(yùn)行時(shí)的簡單使用:獲取某個(gè)類的成員變量、屬性

  • 通過 runtime 獲取到某個(gè)類的所有成員變量:
- (void)viewDidLoad {
    [super viewDidLoad];
    
    //獲取所有成員變量以及其所歸屬的類
    unsigned int count = 0;
    Ivar *vars = class_copyIvarList([UITextField class], &count);
    
    for (int i=0; i<count; i++) {
        Ivar var = *(vars + i);
        NSLog(@"%s <------>  %s",ivar_getName(var),ivar_getTypeEncoding(var));
    }
}
成員變量
  • 通過 runtime 獲取到某個(gè)類的所有屬性及其對應(yīng)的類:
- (void)viewDidLoad {
    [super viewDidLoad];
    
    //獲取所有屬性以及其所對應(yīng)的類
    unsigned int count = 0;
    objc_property_t *properties = class_copyPropertyList([UITextField class], &count);
    
    for (int i=0; i<count; i++) {
        objc_property_t property = properties[i];
        NSLog(@"%s   <-------> %s",property_getName(property),property_getAttributes(property));
    }
}
原有屬性列表
獲取的屬性列表
  • 其它
    通過類比獲取 成員變量 和 屬性列表 的方法,還可以獲取到某個(gè)類所擁有的方法、方法所返回的類型、方法參數(shù)個(gè)數(shù)...這里不再贅述。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 對于從事 iOS 開發(fā)人員來說,所有的人都會答出【runtime 是運(yùn)行時(shí)】什么情況下用runtime?大部分人能...
    夢夜繁星閱讀 3,812評論 7 64
  • 原文出處:南峰子的技術(shù)博客 Objective-C語言是一門動(dòng)態(tài)語言,它將很多靜態(tài)語言在編譯和鏈接時(shí)期做的事放到了...
    _燴面_閱讀 1,418評論 1 5
  • 這篇文章完全是基于南峰子老師博客的轉(zhuǎn)載 這篇文章完全是基于南峰子老師博客的轉(zhuǎn)載 這篇文章完全是基于南峰子老師博客的...
    西木閱讀 30,889評論 33 466
  • 這當(dāng)然是個(gè)錯(cuò)誤。 因?yàn)閻鄞邓?,一直有朋友要我開個(gè)公眾號。但試用了一下之后,感覺微信公眾號的用心特別險(xiǎn)惡:評論功能默...
    lenciel閱讀 492評論 3 0
  • 1、序列號獲取 課程結(jié)束三天內(nèi)提交課程總結(jié)的同學(xué),將獲得老師郵件發(fā)送的iMindMap Home & Studen...
    徐大錘閱讀 1,236評論 0 4

友情鏈接更多精彩內(nèi)容