Runtime 字典轉模型

2022-08-21 11:57:11 字數 1425 閱讀 7040

1 字典key與模型屬性不匹配(模型屬性數量》字典鍵值對數)

#import "

nsobject+model.h

"#import

@implementation nsobject (model)

//獲取類中的所有成員變數

//class_copyivarlist(__unsafe_unretained class cls, unsigned int *outcount)

//runtime:根據模型中屬性,去字典中取出對應的value給模型屬性賦值

//思路:遍歷模型中所有屬性->使用執行時

+ (instancetype)modelwithdict:(nsdictionary *)dict

}return

objc;}

@end

2 模型中巢狀模型(模型屬性是另外乙個模型物件)

#import "

nsobject+mod.h

"#import

@implementation nsobject (mod)

//獲取類裡面所有方法

//class_copymethodlist(__unsafe_unretained class cls, unsigned int *outcount)

//本質:建立誰的物件

//獲取類裡面屬性

//class_copypropertylist(<#__unsafe_unretained class cls#>, <#unsigned int *outcount#>)

//ivar:成員變數 以下劃線開頭

//property:屬性

+ (instancetype)modelwithdict2:(nsdictionary *)dict

}//給模型中屬性賦值

if(value)

}return

objc;

}@end

3 陣列中裝著模型(模型屬性是陣列,陣列中是字典模型物件)

#import "

nsobject+item.h

"#import

@implementation nsobject (item)

//runtime:根據模型中屬性,去字典中取出對應的value給模型屬性賦值

//思路:遍歷模型中所有屬性->使用執行時

+ (instancetype)modelwithdict3:(nsdictionary *)dict

//把模型陣列賦值給value

value =arrm; }}

//如果模型屬性數量大於字典鍵值對數理,模型屬性會被賦值為nil,而報錯

if(value)

}return

objc;

}@end

runtime 實現字典轉模型

runtime與kvc字典轉模型的區別 1.kvc 遍歷字典中所有的key,去模型中查詢有沒有對應的屬性名。2.runtime 遍歷模型中的屬性名,去字典中查詢。依舊是nsobjcet的model分類 字典轉模型 runtime 實現 import import inte ce nsobject m...

字典轉模型

使用字典的壞處 一般情況下,設定資料和取出資料都使用 字串型別的key 編寫這些key時,編譯器不會有任何友善提示,需要手敲 dict name jack nsstring name dict name 手敲字串key,key容寫易錯,key如果寫錯了,編譯器不會有任何警告和報錯,容易造成設錯資料或...

字典轉模型

1.下面這樣的陣列,怎麼轉成模型 2.分析 3.新增模型 城市分組,城市,區,每個模型都有name,抽乙個父類 4.每個模型分別具備的屬性 basemodel nsobject 屬性 nsstring name citysection basemodel 屬性 nsarray cities city...