iOS Runtime
這篇文章的來源是自己的筆記,因為時間有點久了,所以引用的來源想不起來了,實在不好意思。
引用來源應該也是簡書、csdn、cnblog或者coacoaChina部落格的幾篇文章,我把自己看起來比較有體會,好理解的片段摘錄了一下,望見諒。
class_copyPropertyList獲得的是屬性變數,由@property修飾過的變數。
class_copyIvarList獲得的是例項變數,包括class_copyPropertyList修飾的以及在m檔案的中@implementation內定義的變數。
//.h
@interface Model : NSObject
@property (nonatomic,copy) NSString *sex;
@property (nonatomic,copy) NSString *name;
@property (nonatomic,assign) NSInteger age;
@property (nonatomic,strong) NSDictionary *imgCode;
@end
//.m
@interface Model ()
@property (nonatomic,copy) NSString *Id;
@end
@implementation Model {
NSInteger _index;
}
@end
//使用的時候
unsigned int propertiesCount =0;
unsigned int ivarsCount =0;
objc_property_t *properties = class_copyPropertyList(Model, &propertiesCount);
Ivar *ivars = class_copyIvarList(Model, &ivarsCount);//instance variable
則
propertiesCount = 5
ivarsCount = 6
遍歷
unsigned int outCount = 0;
Ivar *ivars = class_copyIvarList([object class], &outCount);
for (int i = 0; i < outCount; ++i) {
// 遍歷取出該類成員變數
Ivar ivar = ivars[i];
NSLog(@"\n name = %s \n type = %s", ivar_getName(ivar), ivar_getTypeEncoding(ivar));
NSString *columnString = [NSString stringWithUTF8String:ivar_getName(ivar)];
id value = [object valueForKey: columnString];
}
free(ivars);
相關文章
- iOS RunTime 總結iOS
- iOS Runtime詳解iOS
- iOS 防止Crash之runtimeiOS
- 【iOS開發進階】-RunTimeiOS
- iOS Runtime介紹和使用iOS
- iOS底層原理探究-RuntimeiOS
- iOS開發之runtime(一):runtime除錯環境搭建iOS除錯
- iOS探索 runtime面試題分析iOS面試題
- iOS之runtime詳解api(二)iOSAPI
- iOS底層面試題--RuntimeiOS面試題
- iOS之runtime詳解api(四)iOSAPI
- iOS之runtime詳解api(三)iOSAPI
- iOS之runtime詳解api(一)iOSAPI
- iOS Runtime 初識與應用iOS
- iOS 問題整理04----RuntimeiOS
- iOS底層原理(二):Runtime研究(一)iOS
- iOS 開發:『Runtime』詳解(二)Method SwizzlingiOS
- iOS 利用Runtime實現萬能歸檔iOS
- iOS探索:Runtime之基本資料結構iOS資料結構
- iOS開發Runtime的理解與應用iOS
- Runtime-iOS執行時應用篇iOS
- iOS底層原理:Runtime研究,玩出新花樣iOS
- ios runtime之Method Swizzling及其應用場景iOS
- iOS面試中經常問的點 – RunTimeiOS面試
- iOS面試中經常問的點 - RunTimeiOS面試
- iOS 開發中 runtime 常用的幾種方法iOS
- iOS 開發:『Runtime』詳解(三)Category 底層原理iOSGo
- iOS 開發:『Runtime』詳解(一)基礎知識iOS
- 一道高階iOS面試題(runtime方向)iOS面試題
- 玩轉iOS開發:iOS開發中的裝逼技術 – RunTime(一)iOS
- 玩轉iOS開發:iOS開發中的裝逼技術 – RunTime(二)iOS
- iOS開發·runtime原理與實踐: 基本知識篇iOS
- iOS runtime執行時的作用和應用場景iOS
- iOS底層原理總結 – 探尋Runtime本質(三)iOS
- iOS逆向(6)-從fishhook看Runtime,Hook系統函式iOSHook函式
- iOS底層原理總結 – 探尋Runtime本質(二)iOS
- iOS底層原理總結 - 探尋Runtime本質(四)iOS
- iOS底層原理總結 - 探尋Runtime本質(二)iOS
- iOS底層原理總結 - 探尋Runtime本質(一)iOS