Swift中Model的定义

1.基于“ ObjectMapper” 的model:
(0)第三方的导入(Podfile文件):

#根据SwiftLanguage的版本定义需要pod的版本
pod 'ObjectMapper', '~> 2.2.8'
pod 'SwiftyJSON', '~> 3.0’

(1)定义:

import UIKit
import ObjectMapper

class PayProductDetailModel: Mappable {
        
    var name: String?//产品名称
    var price: String?//产品价格,以元为单位
    var pay_type: [String]?
    var tipsModel: StudentInfoTipsModel?
    
    //用来展示的价格
    var priceShow: String? {
        guard price != nil else {
            return "¥600"
        }
        return "¥" + price!
    }
    
    required init?(map: Map) {
        
    }
    
    func mapping(map: Map) {
        name<-map["name"]
        price<-map["price"]
        pay_type<-map["pay_type"]
        tipsModel<-map["tips"]
    }
    
}

(2)dictionary转化成model:

import SwiftyJSON

self?.productDetailModel = PayProductDetailModel(JSON: data["data"].dictionaryObject!)
  • 基于“ ObjectMapper” 的model定义中有几个参数就需要map几个参数,如果参数一多,就会显得繁琐。如果你想要简化代码,建议使用基于“HandyJSON”的model。

2.基于“ HandyJSON” 的model:
(0)第三方的导入(Podfile文件):

#根据SwiftLanguage的版本定义需要pod的版本
pod 'HandyJSON', '~> 4.1.1'
pod 'SwiftyJSON', '~> 3.0’

(1)定义:

  • 定义基类(为了减少代码,方便子类继承)
import UIKit
import HandyJSON

class BaseModel: HandyJSON {

    required init() {
        
    }
    
}
  • 定义具体的子类
import UIKit

class WordsTrainingItemModel: BaseModel {
    
    var title: String?
    var is_answer: Bool?//是否是答案,true:是、false:不是
    
}

(2)dictionary转化成model:

import SwiftyJSON
import HandyJSON

let model = JSONDeserializer<WordsTrainingItemModel>.deserializeFrom(dict: dict.dictionaryObject! as NSDictionary)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在使用sequelize操作MySQL需要先做两件准备工作:sequelize对象实例化 定义模型主要是告诉seq...
    Gopal阅读 11,770评论 0 1
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,039评论 3 119
  • 可惜爱不是几封情书的事 /青格 我朋友群里有一对情侣,看上去就是赏心悦目珠联璧合,写情书收情书这事两人上学那会儿都...
    青格阅读 6,167评论 8 23
  • 见不到你 每天都像失恋 心在光秃赛跑 人性穿孔漫游
    9234f791edb2阅读 1,248评论 0 0
  • 着陆页 使用有趣、带有教育性质的着陆页,给用户一种难以忘怀的体验。着陆页给用户带来的第一感觉,是应用能否留住用...
    篱落LY阅读 1,566评论 0 0