2017-08-28 21 views
1

我使用下面的类结构更新每个键行:更新存储的用户模型API响应(使用光泽度)不按行

import Gloss 

class LMSUser: BaseResponse { 

    public var userId:String? 
    public var firstName:String? 
    public var middleName:String? 
    public var lastName:String? 
    public var email:String? 
    public var phone:String? 
    public var token:String? 
    public var roles:[String]? 

    required init?(json: JSON) { 
     super.init(json: json) 
     self.userId = "userId" <~~ json 
     self.firstName = "firstName" <~~ json 
     self.middleName = "middleName" <~~ json 
     self.lastName = "lastName" <~~ json 
     self.email = "email" <~~ json 
     self.phone = "phone" <~~ json 
     self.token = "token" <~~ json 
     self.roles = "roles" <~~ json 
     self.postInit() 
    } 

    public func postInit() { 
     let appDelegate = UIApplication.shared.delegate as! AppDelegate 
     appDelegate.appUser = self 
     UserDefaults.standard.set(self.toJSON(), forKey: String.kDeviceUser) 
     UserDefaults.standard.synchronize() 
    } 

    override func toJSON() -> JSON? { 
     return jsonify([ 
      super.toJSON(), 
      "userId" ~~> self.userId, 
      "firstName" ~~> self.firstName, 
      "middleName" ~~> self.middleName, 
      "lastName" ~~> self.lastName, 
      "email" ~~> self.email, 
      "phone" ~~> self.phone, 
      "token" ~~> self.token, 
      "roles" ~~> self.roles, 
      ]) 
    } 
} 

说,它的一个单独的类,并在它更多的变量和API的确每次都不提供完整的细节。 我所做的只是手动逐行更新每个字段。 任何人都可以帮我保存我的代码的一小部分?

回答

0

你可以在你的类中的方法说initUserData初始化数据,可用,并为您行有写:)

示例代码:

import Gloss 

class LMSUser: BaseResponse { 

    public var userId:String? 
    public var firstName:String? 
    public var middleName:String? 
    public var lastName:String? 
    public var email:String? 
    public var phone:String? 
    public var token:String? 

    required init?(json: JSON) { 
     super.init(json: json) 
     self.initUserData(json: json) 
     self.postInit() 
    } 

    public func initUserData(json: JSON) { 
     let vUserID:String? = "userId" <~~ json 
     if vUserID != nil { 
      self.userId = vUserID 
     } 

     let vFirstName:String? = "firstName" <~~ json 
     if vFirstName != nil { 
      self.firstName = vFirstName 
     } 

     let vMiddleName:String? = "middleName" <~~ json 
     if vMiddleName != nil { 
      self.middleName = vMiddleName 
     } 

     let vLastName:String? = "lastName" <~~ json 
     if vLastName != nil { 
      self.lastName = vLastName 
     } 

     let vEmail:String? = "email" <~~ json 
     if vEmail != nil { 
      self.email = vEmail 
     } 

     let vPhone:String? = "phone" <~~ json 
     if vPhone != nil { 
      self.phone = vPhone 
     } 

     let vToken:String? = "token" <~~ json 
     if vToken != nil { 
      self.token = vToken 
     } 
    } 

    public func postInit() { 
     let appDelegate = UIApplication.shared.delegate as! AppDelegate 
     appDelegate.appUser = self 
    } 

    override func toJSON() -> JSON? { 
     return jsonify([ 
      super.toJSON(), 
      "userId" ~~> self.userId, 
      "firstName" ~~> self.firstName, 
      "middleName" ~~> self.middleName, 
      "lastName" ~~> self.lastName, 
      "email" ~~> self.email, 
      "phone" ~~> self.phone, 
      "token" ~~> self.token 
      ]) 
    } 
} 
+0

做我需要调用initUserData给init每次我需要插入数据? – Devanshu

相关问题