Mantle簡單認識及使用

2021-07-04 07:56:04 字數 3107 閱讀 2757

mantle是乙個建模框架,實現了多個不同的nscodingnscopying方法,還新增了許多非常便利的方法允許你實現更多有用的功能,比如返回乙個json字典,以代表你的物件。很多情況下,mantle可以作為core data的替代選擇。

簡單自定義物件繼承mtlmodel並宣告協議,實現+ (nsdictionary *)jsonkeypathsbypropertykey協議方法。

例如對下面的jsondic資料進行轉換: "id": 12, "code": 200, "msg": "ok"

簡單物件定義:

@inte***ce sampleentity : mtlmodel@property (nonatomic, assgin) nsinteger *sampleid; //與系統id會衝突

@property (nonatomic, assgin) nsinteger code;

@property (nonatomic, strong) nsstring *msg;

@end

@implementation esfhouseentity

+ (nsdictionary *)jsonkeypathsbypropertykey

@end

jsondic資料轉sampleentity:

sampleentity *entity = [mtljsonadapter modelofclass:[sampleentity class] fromjsondictionary:jsondic error:nil];

物件定義:

@inte***ce samplearrentity : mtlmodel@property (nonatomic, assgin) nsinteger *samplearrid; //與系統id會衝突

@property (nonatomic, assgin) nsinteger age;

@property (nonatomic, strong) nsstring *name;

@end

@implementation esfhouseentity

+ (nsdictionary *)jsonkeypathsbypropertykey

@end

jsonarr資料轉samplearrentity:

nsarray *samplearrentityarr = [mtljsonadapter modelsofclass:[samplearrentity class] fromjsonarray:jsonarr error:nil];

物件定義:

@class esfagententity,esfhouselistentity,houselookbyagentmsg;

@inte***ce complexentity : mtlmodel@property (nonatomic, strong) nsarray *houselookbyagentmsglist; //經紀人帶看記錄列表@property (nonatomic, strong) nsarray *similarhousemsglist;//相似**@property (nonatomic, strong) nsstring *houseid;

@end

#pragma mark - 經紀人帶看記錄物件

@inte***ce houselookbyagentmsg : mtlmodel @property (nonatomic, strong) esfagententity *agent;//經紀人實體

@property (nonatomic, strong) nsstring *lookeddate;//"2014-12-05", // 帶看時間

@end

#pragma mark - 經紀人物件

@inte***ce esfagententity : mtlmodel @property (nonatomic, assign) nsinteger credit;

@property (nonatomic, strong) nsinteger agentid;//與系統id會衝突

@end

#pragma mark - 相似**物件

@inte***ce esfhouselistentity : mtlmodel @property (nonatomic, assign) nsstring *picture;

@property (nonatomic, strong) nsinteger houselistid;//與系統id會衝突

@end

@implementation complexentity

+ (nsdictionary *)jsonkeypathsbypropertykey

//經紀人帶看記錄列表進行解析

+ (nsvaluetransformer *)houselookbyagentmsglistjsontransformer

//相似**進行解析

+ (nsvaluetransformer *)similarhousemsglistjsontransformer

@end

@implementation houselookbyagentmsg

+ (nsdictionary *)jsonkeypathsbypropertykey

//對經紀人實體agent進行解析

+ (nsvaluetransformer *)agentjsontransformer

@end

@implementation esfhouselistentity

+ (nsdictionary *)jsonkeypathsbypropertykey

@end

@implementation esfagententity

+ (nsdictionary *)jsonkeypathsbypropertykey

Mantle 初步使用

最近接觸到了mantle這個東西,感覺很不錯,在此與各位分享一下。在開發的過程中,我們常常會從網路獲取資料,而資料通常又為json格式。這時比較常見的做法是把json資料轉為model物件,這樣我們可以從model物件的屬性讀取資料。但是常常會面臨如下一些問題 有沒有辦法可以很優雅的解決這些問題呢,...

Mantle 初步使用

最近接觸到了mantle這個東西,感覺很不錯,在此與各位分享一下。在開發的過程中,我們常常會從網路獲取資料,而資料通常又為json格式。這時比較常見的做法是把json資料轉為model物件,這樣我們可以從model物件的屬性讀取資料。但是常常會面臨如下一些問題 有沒有辦法可以很優雅的解決這些問題呢,...

wireshark簡單認識使用

wireshark beyond compare是乙個網路封包分析軟體。網路封包分析軟體的功能是擷取網路封包,並盡可能顯示出最為詳細的網路封包資料。wireshark使用winpcap作為介面,直接與網絡卡進行資料報文交換,是目前全世界最廣泛的網路封包分析軟體。首先認識一下wireshark介面各個...