代碼示例運行環(huán)境為 IOS10超营,Swift 3.0
github地址:GitHub - ZhangJiming/RainExtension: Simple Dic2Model
本文參考文章,該文章使用OC語言莉恼,我是在此基礎上使用了Swift3.0,感謝此文章作者 微涼
我是覺得目前關(guān)于Swift下的runtime內(nèi)容比較少,特上傳到github上供初學者參考盟萨。
在Swift3.0下要使用runtime,并實現(xiàn)字典轉(zhuǎn)模型了讨,需要具備幾點:
第一點捻激,模型一定要繼承自NSObject類,這樣才可能具備運行時的特征前计。當然也可以使用純Swift類胞谭,然后在類名和屬性名稱下加@obj修飾符才可,但是我覺得太過于麻煩男杈,又沒有保證丈屹,還是直接繼承自NSObject比較好。
第二點伶棒,模型中所有的變量都必須初始化旺垒,也就是不能為optianal類型。不然也是不能正常識別的肤无。
第三點先蒋,模型中的數(shù)據(jù)類型是有限制的,例如Swift中的enum宛渐、Tuple等都是不可的竞漾,但是我沒有具體測試過所有的數(shù)據(jù)類型,我只能說Swift中的String窥翩、Dictionary业岁、Array、Bool寇蚊、Int笔时、Float 都是可以的。
當我再接觸Swift之后幔荒,我一直猶豫還要不要使用 runtime 這種OC時代的產(chǎn)物。我現(xiàn)在覺得還是很有必要的梳玫,利大于弊爹梁。
如果有任何疑問或者是文中存在技術(shù)性錯誤,請留言提澎,我會盡快回復或者更改姚垃。