1.Parent.h
:
@class Son;
@interface Parent : NSObject
@property (nonatomic, strong) Son *son;
@end
#pragma mark - son
@interface Son : NSObject
@property (nonatomic, copy) NSString *name;
@end
2.Parent.m
@implementation Parent
@end
3.解析如下:
NSDictionary *dict = @{
@"son" : @{
@"name" : @"Jack",
},
};
[Parent mj_objectWithKeyValues:dict];
此時解析會失敗,通過 [Parent mj_objectWithKeyValues:dict]
只能解析第一層丢氢,默認son解析成了NSDictionary
傅联。
標(biāo)準的寫法:
把Son單獨拉出來當(dāng)成另外一個類文件,在Parent.h中#import "Son.h"
疚察,通過[Parent mj_objectWithKeyValues:dict];
可以成功解析蒸走!
那么問題出在哪里?
一度我誤以為是MJExtentsion的bug貌嫡,并且github提交了issue载碌,
細心的朋友應(yīng)該會發(fā)現(xiàn)我的Parent.m
文件中是缺少Son的實現(xiàn)代碼如下:
@implementation Son
@end
昨晚凌晨的時候 我又親自代碼試了一下,修改了Parent.m
,如下:
@implementation Parent
@end
#pragma mark - Son
@implementation Son
@end
然后衅枫,通過[Parent mj_objectWithKeyValues:dict];
可以成功解析!
心中一萬頭草泥馬狂奔而過...
總結(jié):
幾乎每個項目中大家都會創(chuàng)建很多的model類朗伶,但是有些model類其實只會用到一次弦撩,并且依賴于其他的model類,這個時候都會選擇多個model類寫在同一個類文件下论皆,但是益楼,請千萬留意xxx.m
文件的代碼實現(xiàn),這種語法錯誤是非常容易犯的点晴。
再次感謝
感謝MJExtension為廣大開發(fā)者帶來的方便感凤!