专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构

定义用户模型

  • 新建 User 模型类,创建属性

    class HMUser: NSObject {
    
      /// 用户UID
      var id: Int = 0
    
      /// 友好显示名称
      var name: String?
    
      /// 用户头像地址(中图),50×50像素
      var profile_image_url: String?
    
      /// verified_type 没有认证:-1   认证用户:0  企业认证:2,3,5  达人:220
      var verified_type: Int = -1
    
      /// 会员等级 1-6
      var mbrank: Int = 0
    }
    
  • User 模型添加字典转模型

    // MARK: - 字典转模型
    init(dict: [String: Any]) {
      super.init()
    
      // KVC赋值
      setValuesForKeys(dict)
    }
    
    // 字典中的key在模型中没有对应的属性时调用
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
    
    // 打印对象
    override var description: String {
      let keys = ["id", "name", "profile_image_url", "verified_type", "mbrank"]
      return "\n\t\t:用户模型:\(dictionaryWithValues(forKeys: keys))\n"
    }
    

  • HMStatus 中增加 user 属性
    /// 用户模型
    var user: HMUser?
    
  • KVC 字典转模型时,对 user 属性特殊处理,自己调用字典转模型并赋值给 user 属性

    override func setValue(_ value: Any?, forKey key: String) {
      // 如果是 user 属性
      if key == "user" {
    //            print("user: \(value)")
          if let dict = value as? [String: Any] {
              // 字典转模型
              user = HMUser(dict: dict)
          }
    
          // 一定要记得 return
          return
      }
    
      super.setValue(value, forKey: key)
    }
    
  • description 属性里添加 user 属性

results matching ""

    No results matching ""