網(wǎng)絡(luò)請求json轉(zhuǎn)換成model是純體力活,一般都是用工具生成,之前用JSON Accelerator進行生成,但是修改起來比較麻煩,看他的源碼寫的也比較復(fù)雜,后來發(fā)現(xiàn)了Mustache這個工具,一下就把問題簡單化了mustache模板引擎
Mustache介紹與語法
參這篇文章鏈接
工具介紹
主要利用JSON來生成model和與model對應(yīng)的TableViewCell的數(shù)據(jù)綁定,Cell默認model的每一條數(shù)據(jù)都會對應(yīng)一個控件,String和Int對應(yīng)UILabel,圖片鏈接對應(yīng)UIImageView,可以根據(jù)需要修改模板代碼
model模板代碼如下:
#import <Foundation/Foundation.h>
@interface {{name}}Model : NSObject
{{#properties}}@property (nonatomic, {{#strong}}strong{{/strong}}{{^strong}}assign{{/strong}} ) {{type}} {{#strong}}*{{/strong}}{{typename}};
{{/properties}}
@end
getArray.append(["type":typeName[type] ?? "String",
"typename":key,
"strong":typestrong[type] ?? true,
"image": isImage,
"uitype": isImage ? "ImageView" :"Label"])
let dic:[String:Any] = [
"properties" : getArray,
"name" : name
]
{{#key}}{{/key}}有兩個作用,一個是用數(shù)組賦值,一個是表示YES就顯示,NO就不顯示
{{^key}}{{/key}}表示NO就顯示,YES就不顯示
{{#properties}}{{/properties}}通過properties數(shù)組屬性賦值
{{#strong}}strong{{/strong}}表示strong這個屬性為YES就顯示
{{^strong}}assign{{/strong}}表示strong這個屬性為NO就顯示
# ^這個兩個就相當于if判斷了