首先,不要害怕,他是幫助我們簡化問題的(比如自動降nsnull轉成nil,減少崩潰的可能),所以並不會難用。
我們通常用的就是mtljsonadapter,mtlmodel
tip 1:繼承mtlmodel,遵守mtljsonserializing協議
你需要實現這個方法來寫明一下對映關係,這個是我覺得mantle不好的一點,如果屬性和傳過來的介面是一樣的名字,也必須要在這個方法裡一一對應,不太好,mjextension就不需要。
+ (nsdictionary *)jsonkeypathsbypropertykey
用的時候
data轉字典
[nsjsonserialization
jsonobjectwithdata
:data
options:
nsjsonreadingmutablecontainers
error:
nil];
字典轉模型
model *model = [mtljsonadapter
modelofclass:[model
class] fromjsondictionary:dict
error:nil];
如果你的模型裡面想要的是nsdate, 但是傳過來的是nsnumber的話,你可以實現這個方法來轉換一下。
+ (nsvaluetransformer *)datejsontransformer reverseblock:^(nsdate *date) ];
}
這裡面reverseblock是用來模型轉json的
也就是這個方法
+ (nsdictionary *)jsondictionaryfrommodel:
當你的模型裡有的屬性是陣列的話,你就需要告訴他一下,這個陣列裡面放的是什麼模型,也就是實現這個方法
+ (nsvaluetransformer *)recommendlistjsontransformer
如果你的模型裡的乙個屬性是另乙個model的話,那麼你就需要實現這個方法
+ (nsvaluetransformer *)companyinfojsontransformer
當你想把模型儲存起來的時候你可以醬紫操作。
歸檔操作
[nskeyedarchiver archiverootobject:model tofile:path]
;
解檔操作
testdatamodel *unachivemodel =[nskeyedunarchiver unarchiveobjectwithfile:path];
參考文章: Mantle 初步使用
最近接觸到了mantle這個東西,感覺很不錯,在此與各位分享一下。在開發的過程中,我們常常會從網路獲取資料,而資料通常又為json格式。這時比較常見的做法是把json資料轉為model物件,這樣我們可以從model物件的屬性讀取資料。但是常常會面臨如下一些問題 有沒有辦法可以很優雅的解決這些問題呢,...
Mantle 初步使用
最近接觸到了mantle這個東西,感覺很不錯,在此與各位分享一下。在開發的過程中,我們常常會從網路獲取資料,而資料通常又為json格式。這時比較常見的做法是把json資料轉為model物件,這樣我們可以從model物件的屬性讀取資料。但是常常會面臨如下一些問題 有沒有辦法可以很優雅的解決這些問題呢,...
Mantle簡單認識及使用
mantle是乙個建模框架,實現了多個不同的nscoding和nscopying方法,還新增了許多非常便利的方法允許你實現更多有用的功能,比如返回乙個json字典,以代表你的物件。很多情況下,mantle可以作為core data的替代選擇。簡單自定義物件繼承mtlmodel並宣告協議,實現 nsd...