Swift - 大模型 -> 小模型

JSONExport 轉(zhuǎn)換模型時候后,需要自定義更小模型時候可用Map

//用map 函數(shù)快速 轉(zhuǎn)換模型  如 大模型 -> 小模型 或 小小大

struct BigModel {
    var name:String!
    var age:Int!
    var adress:String!
    var gender:String!
}

struct SmallModel {
    var name:String! = ""
    var age:Int! = 0
}

let bigDatas = [BigModel(name: "逗牛", age: 10, adress: "簡書3515號", gender: "男"), BigModel(name: "鍋蓋", age: 12, adress: "某島369號", gender: nil)]

//簡寫
let smallDatas = bigDatas.map { SmallModel(name: $0.name ,age: $0.age) }

//完整寫法
let smallDatas2 = bigDatas.map { (bigData) -> SmallModel in
    return SmallModel(name: bigData.name, age: bigData.age)
}

print(smallDatas2)
注意:服務器返回的nil數(shù)據(jù)時候
// 有時候服務器返回的數(shù)據(jù),有可能出現(xiàn)空值情況
//JSONExport秒轉(zhuǎn)Model  使用時候注意nil 
//下面進行簡單處理
let notNormalDatas = [BigModel(name: "逗牛", age: nil, adress: "冒險島蝸牛", gender: "男"), BigModel(name: nil, age: 12, adress: "冒險島", gender: nil)]
let notNormalData = notNormalDatas.map { (notNormalData) -> SmallModel in
    var smallM = SmallModel()
    if let name = notNormalData.name {
        smallM.name = name
    }
    if let age = notNormalData.age {
        smallM.age = age
    }
    return smallM
}

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

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

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