JSONModel 的常見錯(cuò)誤

開始感謝JSONModel的開源,其成為了項(xiàng)目開發(fā)必備的開源庫。
我在網(wǎng)絡(luò)層中使用了瘦model的思想,業(yè)務(wù)層與網(wǎng)路層交互的全都是繼承自JSONModel 的model。
在開發(fā)過程中遇到了很多錯(cuò)誤,再此空暇之際總結(jié),方便以后查找。

Paste_Image.png

以上圖model為例。
1.[__NSCFDictionary name]: unrecognized selector sent to instance

這種情況是:NSArray<WJPerson> * data;寫成了NSArray<WJPeson> * data;尖括號(hào)中為協(xié)議,不是指針。JSONModel利用協(xié)議這一特性,在解析的時(shí)候獲得需要將數(shù)據(jù)轉(zhuǎn)化的類型,這由JSONModel實(shí)現(xiàn),不是oc的泛型。
2.
Terminating app due to uncaught exception 'Bad property protocol declaration', reason: '<XCBCarPlaceModel> is not allowed JSONModel property protocol, and not a JSONModel class.*

這種情況是沒有XCBCarPlaceModel類的實(shí)現(xiàn)。
@implementation XCBCarPlaceModel
@end

3.** Invalid JSON data. Required JSON keys are missing from the input. Check the error user information.**

這是model里面的數(shù)組,默認(rèn)是必需的,要是返回回來的model沒有包含此字段就會(huì)造成解析失敗。
4.toJSONString 方法,當(dāng)model的屬性為nil為其被Optional修飾,那么得到的此字符串就沒有該屬性,如果nil為requerid那么就是該屬性其值為null.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容