關(guān)于swift項目中的字典轉(zhuǎn)模型的思考
總結(jié):swift2.1語法之中并沒有像oc的運行時的概念,因此,像oc那樣使用運行時黑魔法來進行字典轉(zhuǎn)模型在swift中或多或少遇到了坑,可以混合使用,但是在swift模式下復(fù)雜字典的轉(zhuǎn)模型中,沒有了oc那樣的優(yōu)勢,因此,建議的做法是要么model層全部使用oc來寫,要么使用老套的,中規(guī)中矩的KVC來進轉(zhuǎn)model。
在使用oc中赫赫有名的mjextension來進行字典轉(zhuǎn)模型,總是會遇到nsarray和swift下的array不匹配的問題,這種問題出現(xiàn)的地方還不少,尤其是在復(fù)雜的字典下,這種報錯原因出現(xiàn)的概率更加大。解決了一處,還有其他的,因此,雖然其轉(zhuǎn)換效率在oc中是數(shù)一數(shù)二的,但是在swift模式下,使用起來就不是那么得心應(yīng)手了。
然后開始搜集資料,進行swift版本的字典轉(zhuǎn)模型、數(shù)組字典轉(zhuǎn)模型的方法的封裝,但是經(jīng)過深入研究就會發(fā)現(xiàn),其思想還是利用oc的運行時機制來進行高效率的轉(zhuǎn)model,而swift2.1中是沒有運行時這一概念了,幾經(jīng)周折后,結(jié)果還是和使用mjextension的結(jié)果一樣,無奈,還是使用了中規(guī)中矩的KVC來字典轉(zhuǎn)模型,字典數(shù)組轉(zhuǎn)模型。
測試demo地址:[https://github.com/qtds8810/18-MJExtension]