// // UserModel.swift // Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport import Foundation import ObjectMapper class UserModel : NSObject, NSCoding, Mappable{ private static let _sharedInstance = UserModel() private override init() {} // 私有化init方法 class func shared() -> UserModel { return _sharedInstance } var accessToken : String? var avatarurl : String? var gender : Int? var isPassword : Int? var mobile : String? var openId : String? var token : String? var tokenTtl : Int? var uid : Int? var unionId : String? var username : String? var isFollowSuggestTopic : Int? var isNewMember : Int? var inviteUid : Int? var inviteCode : String? class func newInstance(map: Map) -> Mappable?{ return UserModel() } required init?(map: Map){} func mapping(map: Map) { accessToken <- map["access_token"] avatarurl <- map["avatarurl"] gender <- map["gender"] isPassword <- map["is_password"] mobile <- map["mobile"] openId <- map["open_id"] token <- map["token"] tokenTtl <- map["token_ttl"] uid <- map["uid"] unionId <- map["union_id"] isFollowSuggestTopic <- map["is_follow_suggest_topic"] isNewMember <- map["is_new_member"] inviteUid <- map["invite_uid"] inviteCode <- map["invite_code"] username <- map["username"] } /** * NSCoding required initializer. * Fills the data from the passed decoder */ @objc required init(coder aDecoder: NSCoder) { accessToken = aDecoder.decodeObject(forKey: "access_token") as? String avatarurl = aDecoder.decodeObject(forKey: "avatarurl") as? String gender = aDecoder.decodeObject(forKey: "gender") as? Int isPassword = aDecoder.decodeObject(forKey: "is_password") as? Int mobile = aDecoder.decodeObject(forKey: "mobile") as? String openId = aDecoder.decodeObject(forKey: "open_id") as? String token = aDecoder.decodeObject(forKey: "token") as? String tokenTtl = aDecoder.decodeObject(forKey: "token_ttl") as? Int uid = aDecoder.decodeObject(forKey: "uid") as? Int unionId = aDecoder.decodeObject(forKey: "union_id") as? String username = aDecoder.decodeObject(forKey: "username") as? String isFollowSuggestTopic = aDecoder.decodeObject(forKey: "is_follow_suggest_topic") as? Int isNewMember = aDecoder.decodeObject(forKey: "is_new_member") as? Int inviteUid = aDecoder.decodeObject(forKey: "invite_uid") as? Int inviteCode = aDecoder.decodeObject(forKey: "invite_code") as? String } /** * NSCoding required method. * Encodes mode properties into the decoder */ @objc func encode(with aCoder: NSCoder) { if accessToken != nil{ aCoder.encode(accessToken, forKey: "access_token") } if avatarurl != nil{ aCoder.encode(avatarurl, forKey: "avatarurl") } if gender != nil{ aCoder.encode(gender, forKey: "gender") } if isPassword != nil{ aCoder.encode(isPassword, forKey: "is_password") } if mobile != nil{ aCoder.encode(mobile, forKey: "mobile") } if openId != nil{ aCoder.encode(openId, forKey: "open_id") } if token != nil{ aCoder.encode(token, forKey: "token") } if tokenTtl != nil{ aCoder.encode(tokenTtl, forKey: "token_ttl") } if uid != nil{ aCoder.encode(uid, forKey: "uid") } if unionId != nil{ aCoder.encode(unionId, forKey: "union_id") } if username != nil{ aCoder.encode(username, forKey: "username") } if isFollowSuggestTopic != nil{ aCoder.encode(isFollowSuggestTopic, forKey: "is_follow_suggest_topic") } if isNewMember != nil{ aCoder.encode(isNewMember, forKey: "is_new_member") } if inviteUid != nil{ aCoder.encode(isFollowSuggestTopic, forKey: "invite_uid") } if inviteCode != nil{ aCoder.encode(isNewMember, forKey: "invite_code") } } /// 存储个人信息 /// /// - Parameter locationModel: 定位模型 func setModel(model:UserModel) -> Void { //实例对象转换成Data let modelData = NSKeyedArchiver.archivedData(withRootObject: model) //存储Data对象 UserDefaults.standard.set(modelData, forKey: "UserModel") NXLLog("UserModel存储成功") } /// 获取个人信息 /// /// - Returns: 定位模型 func getModel() -> UserModel? { //自定义对象读取 let modelData = UserDefaults.standard.data(forKey: "UserModel") var model = UserModel() if modelData != nil { model = NSKeyedUnarchiver.unarchiveObject(with: modelData!) as! UserModel NXLLog("UserModel读取成功") } return model } /// 移除个人信息 func removeLoginModel() { UserDefaults.standard.removeObject(forKey: "UserModel") } /// 获取H5需要的对象 func getH5UserInfo() -> Dictionary { //获取当前时间 let userModel = getModel() var userInfoDic = Dictionary() userInfoDic.updateValue("userInfo", forKey: "type") userInfoDic.updateValue(userModel?.toJSON() as Any, forKey: "params") return userInfoDic } }