swift 3.0踏坑之旅 ---- 自带模型转换

在OC中用惯了JSONModel,养成了一个习惯:所有的字段都用string接。
无疑,在OC 中,继承自JSONModel的模型里的属性都定义成string会避免一些空值时的报错,以及一些不是每次都有的字段锁造成的报错。
然而就是这个习惯,在swift3.0中坑了我一天!因为swift转模型时必须对应字段类型,而且在网上搜的一些代码、例子也都没说到这个点子上。默默的找啊找,找啊找;总算顿悟了��O(∩_∩)O哈哈~

下边就上代码吧,提醒下自己提醒下那些像我一样踩到这个坑里的朋友,但愿能提供些帮助吧。

import UIKit

class ShopModel: NSObject {


    /*
     大体的网络数据的格式
     "resturantList":
     [
     {
     "id": 62,
     "companyId": 28,
     "restaurantName": "AlfredShanghai",
     "type": 3,
     "description": "eee44",
     "email": "610124860@qq.com",
     "address1": "88882331",
     "address2": "8888233",
     "distance": 13010.223545388273,
     "avgPrice": 0,
     "channel": "披萨/报摊",
     "telNo": "888888",
     "country": "Singapore",
     "state": "",
     "city": "Singapore",
     "postalCode": "8888",
     "website": "",
     "logoUrl": "http://139.224.17.126/upload/img/logo/ea79c1b9-eaac-4349-b938-5d65410f79f9.png",
     "favoriteCount": 99,
     "weekStartDay": 1,
     "weekEndDay": 0,
     "openTime": "09:00",
     "closeTime": "24:00",
     "isOrder": 1,
     "isDelivery": 1,
     "isPayment": 0,
     "logoWidth": 204,
     "logoHeight": 129,
     "score": 5,
     "lon": "122.20863",
     "lat": "32.00022"
     },

     */

    var id : Int = 0
    var companyId : Int = 0
    var restaurantName : String = ""
    var type : Int = 0
    var isOrder : Int = 0
    var score : Int = 0
    var channel : String = ""
    var logoUrl : String = ""
    var address1 : String = ""
    var address2 : String = ""
    var telNo : String = ""
    var lon : String = ""
    var lat : String = ""

    class func dicToModel(list:[[String : Any]]) -> [ShopModel] {
        var models = [ShopModel]()
        for dict in list {
            models.append(ShopModel(dict: dict))
        }
        return models
    }

    override init() {
    }

    init(dict : [String : Any]) {
        super.init()
        setValuesForKeys(dict)
    }

    override func setValue(_ value: Any?, forKey key: String) {
        super.setValue(value, forKey: key)
    }

    override func setValue(_ value: Any?, forUndefinedKey key: String) {
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值