JSON 轉Model (runtime 轉)

首先demo結構

33260F48-9263-45DC-8901-A1B0D0C856BB.png

1, model, .m文件中不需要寫任何東西

B838F142-F2D6-407A-BF4F-44E61DD7FF6C.png

2,創(chuàng)建一個NSObject的擴展

4A9EA170-9907-47AC-A18A-CBFCF23D9154.png

.m文件內容


#import "NSObject+FYJsonToModel.h"

#import <objc/runtime.h>


@implementation NSObject (FYJsonToModel)

// 利用 Runtime
-(void)fy_modelSetWithDictionary:(NSDictionary *)dictionary
{
    if (dictionary == nil){
        return;
    }
    unsigned int outCount =0;

    Ivar*vars =class_copyIvarList([self class], &outCount);//獲取到所有的成員變量列表
    //遍歷所有的成員變量
    for(int i =0; i < outCount; i++) {
        Ivar ivar = vars[i];//取出第i個位置的成員變量
        const char*propertyName =ivar_getName(ivar);//獲取變量名

        NSString*proOcName = [NSString stringWithUTF8String:propertyName];
        
        id jsonValue = [dictionary objectForKey:[proOcName stringByReplacingOccurrencesOfString:@"_" withString:@""]];
        
        object_setIvar(self, ivar,jsonValue);
    }
}
@end

3,使用

A4DF7772-A0B0-416A-9AF5-D2226DDA5DCF.png

我們不生產代碼 我們只是代碼的搬運工 原文連接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,365評論 25 708
  • 發(fā)現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,756評論 4 61
  • 原文地址:iOS應用架構談 view層的組織和調用方案 當我們開始設計View層的架構時,往往是這個App還沒有開...
    Jabir_Zhang閱讀 1,003評論 0 1
  • 今年9月有機會出差去廈門,逛了廈門幾個有名的地方,現在回頭翻看照片,還是很喜歡… 美好的旅途還會繼續(xù),加油吧……
    輕舞飛飛揚閱讀 213評論 0 0
  • 親情是血濃于水,是一種藏在血液里面的,并且說不清道不明的東西。 曾幾何時,我變成了一個動不動就會把最壞的脾氣帶...
    榴蓮糖糖閱讀 891評論 1 1

友情鏈接更多精彩內容