2017-05-09 105 views
0

我有一个开关和table.if开关是“on”如果交换机处于“关闭”状态,我应该包括停用的用户,然后只显示活跃的客户。我会根据api的响应从所有客户那里获取api的数据。如果一个名为active的参数处于活动状态,则该客户处于活动状态。为 我想从一个模型复制数据到另一个模型在迅速显示错误asshowing错误,因为不能将类型'sguserdata'(即,arraymodelobject)的值转换为期望的参数类型'sguserwithoutactivationdeactivation'(即arraymodelobject)两者数组对象是除主名显示错误,因为不能将类型'x'(即数组模型对象)的值转换为期望类型'x'(即数组模型对象)

import UIKit 

    class SGUserlistViewController: SGBaseViewController,UITableViewDelegate,UITableViewDataSource { 
var userlistdatawithmsg:sguserlistdatawithmsg? 
@IBOutlet weak var usertable: UITableView! 


@IBOutlet weak var btnnew_users: UIButton! 

@IBOutlet weak var IncludeDeactiveview: UIView! 


@IBOutlet weak var includedeactive_switch: UISwitch! 
    let activityIndicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 55, height: 55)) 
var userlistwithoutdeactivation : sguserlistdatawithoutdeactivation? 
var userdatawithoutdeactivation = [sguserwithoutdeactivation]() 
var userdata = [sguserdata]() 

override func viewDidLoad() { 
    self.title = "Users" 
    super.viewDidLoad() 



    searchonlypending() 
     self.usertable.register(UINib(nibName: "sgpurchaseorderviewallTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "sgpurchaseorderviewallTableViewCell") 





} 
func searchonlypending(){ 
    self.activityIndicator.startAnimating() 
    let params: [String : Any] = [:] 

      SGWebServices.sharedWebServices.getuserlist(params:params) { (error, response) in 
     if (error == nil) { 


      if response?.message != "Authorization has been denied for this request."{ 
       print("success") 

        let userDefaults = UserDefaults.standard 
        let encodedData = NSKeyedArchiver.archivedData(withRootObject: response!) 
       userDefaults.set(encodedData, forKey: "userlist") 
       userDefaults.synchronize() 
     //let userlist = self.userlistdatawithmsg?.data 
           self.usertable.reloadData() 
        self.activityIndicator.stopAnimating() 
       if response?.data.count == 0{ 
        let alert = UIAlertController(title:"" , message: "No User found", preferredStyle: UIAlertControllerStyle.alert) 
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)) 

        self.present(alert, animated: true, completion: nil) 
       } 

      }else{ 
          self.activityIndicator.stopAnimating() 
       let storyboard = UIStoryboard(name: "Main", bundle: nil) 
       let controller = storyboard.instantiateViewController(withIdentifier: "SgloginViewController") 
       self.present(controller, animated: true, completion: nil) 
      } 
     } 
     else{ 


       let alert = UIAlertController(title: "Oops", message: "Something went wrong", preferredStyle: UIAlertControllerStyle.alert) 
       alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)) 

       self.present(alert, animated: true, completion: nil) 




      } 
    } 
} 


@IBAction func addnewuser(_ sender: UIButton) { 



    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let controller = storyboard.instantiateViewController(withIdentifier: "SGAdduserViewController") 
      self.present(controller, animated: true, completion: nil) 
} 


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if includedeactive_switch.isOn == true{ 
    if userlistwithoutdeactivation?.data.count != nil{ 

     return (userlistwithoutdeactivation?.data.count)! 
    } 
    } 
    else{ 

     if userlistwithoutdeactivation?.data.count != nil{ 
      return (userlistwithoutdeactivation?.data.count)! 
     } 



    } 
    return 0 

} 
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return 91 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = usertable.dequeueReusableCell(withIdentifier: "sgpurchaseorderviewallTableViewCell")! as! sgpurchaseorderviewallTableViewCell 


    cell.poname.text = userlistwithoutdeactivation?.data[indexPath.row].userName 
    cell.fromclient.text = userlistwithoutdeactivation?.data[indexPath.row].roleName 


    return cell 
} 
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){ 
    let selected_rowforuserdetails = indexPath.row 
    print(selected_rowforuserdetails) 
    UserDefaults.standard.set(selected_rowforuserdetails, forKey:"selected_row_for_userdetils") 
    UserDefaults.standard.synchronize() 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let controller = storyboard.instantiateViewController(withIdentifier: "SGUserdetailViewController") 
    self.present(controller, animated: true, completion: nil) 





} 

@IBAction func userlistincludedeactiveations(_ sender: UISwitch) { 



    if includedeactive_switch.isOn == false{ 

       print(self.userlistdatawithmsg?.data.count) 
    //let userlist = self.userlistdatawithmsg?.data 
     if SGManager.sharedManager.getuserslist()?.data != nil{ 

      let modeldata = SGManager.sharedManager.getuserslist() 
      userlistdatawithmsg = modeldata 

    for pom in (self.userlistdatawithmsg?.data)!{ 
     if pom.active == true 
     { 

      self.userlistwithoutdeactivation?.data.append(pom) 

     } 
    } 
    usertable.reloadData() 
     } 

    } 
    else{ 

      print(self.userlistdatawithmsg?.data.count) 
     if SGManager.sharedManager.getuserslist()?.data != nil{ 

      let modeldata = SGManager.sharedManager.getuserslist() 
      userlistdatawithmsg = modeldata 
      self.userlistwithoutdeactivation?.data[0] = userlistdatawithmsg?.data[0] 
          usertable.reloadData() 

     } 


    } 


} 

} 

和两个模型是呈三角除了自己的名字

模型1相似:

import Foundation 


class sguserdata : NSObject, NSCoding{ 

var active : Bool! 
var billingAddress : AnyObject! 
var clientId : Int! 
var confirmPassword : AnyObject! 
var createdByUserName : AnyObject! 
var domainInfo : AnyObject! 
var email : String! 
var emailConfirmed : Bool! 
var emailStatus : Bool! 
var firstName : String! 
var id : String! 
var imagePath : AnyObject! 
var joinDate : String! 
var lastName : String! 
var level : Int! 
var loggedInUserClientId : Int! 
var loggedInUserId : AnyObject! 
var loggedInUserName : AnyObject! 
var password : AnyObject! 
var passwordHash : AnyObject! 
var phoneNumber : String! 
var role : sguserrole! 
var roleId : AnyObject! 
var roleName : String! 
var securityStamp : AnyObject! 
var userName : String! 


/** 
* Instantiate the instance using the passed dictionary values to set the properties values 
*/ 
init(fromDictionary dictionary: NSDictionary){ 
    active = dictionary["active"] as? Bool 
    billingAddress = dictionary["billingAddress"] as? AnyObject 
    clientId = dictionary["clientId"] as? Int 
    confirmPassword = dictionary["confirmPassword"] as? AnyObject 
    createdByUserName = dictionary["createdByUserName"] as? AnyObject 
    domainInfo = dictionary["domainInfo"] as? AnyObject 
    email = dictionary["email"] as? String 
    emailConfirmed = dictionary["emailConfirmed"] as? Bool 
    emailStatus = dictionary["emailStatus"] as? Bool 
    firstName = dictionary["firstName"] as? String 
    id = dictionary["id"] as? String 
    imagePath = dictionary["imagePath"] as? AnyObject 
    joinDate = dictionary["joinDate"] as? String 
    lastName = dictionary["lastName"] as? String 
    level = dictionary["level"] as? Int 
    loggedInUserClientId = dictionary["loggedInUserClientId"] as? Int 
    loggedInUserId = dictionary["loggedInUserId"] as? AnyObject 
    loggedInUserName = dictionary["loggedInUserName"] as? AnyObject 
    password = dictionary["password"] as? AnyObject 
    passwordHash = dictionary["passwordHash"] as? AnyObject 
    phoneNumber = dictionary["phoneNumber"] as? String 
    if let roleData = dictionary["role"] as? NSDictionary{ 
     role = sguserrole(fromDictionary: roleData) 
    } 
    roleId = dictionary["roleId"] as? AnyObject 
    roleName = dictionary["roleName"] as? String 
    securityStamp = dictionary["securityStamp"] as? AnyObject 
    userName = dictionary["userName"] as? String 
} 

/** 
* Returns all the available property values in the form of NSDictionary object where the key is the approperiate json key and the value is the value of the corresponding property 
*/ 
func toDictionary() -> NSDictionary 
{ 
    var dictionary = NSMutableDictionary() 
    if active != nil{ 
     dictionary["active"] = active 
    } 
    if billingAddress != nil{ 
     dictionary["billingAddress"] = billingAddress 
    } 
    if clientId != nil{ 
     dictionary["clientId"] = clientId 
    } 
    if confirmPassword != nil{ 
     dictionary["confirmPassword"] = confirmPassword 
    } 
    if createdByUserName != nil{ 
     dictionary["createdByUserName"] = createdByUserName 
    } 
    if domainInfo != nil{ 
     dictionary["domainInfo"] = domainInfo 
    } 
    if email != nil{ 
     dictionary["email"] = email 
    } 
    if emailConfirmed != nil{ 
     dictionary["emailConfirmed"] = emailConfirmed 
    } 
    if emailStatus != nil{ 
     dictionary["emailStatus"] = emailStatus 
    } 
    if firstName != nil{ 
     dictionary["firstName"] = firstName 
    } 
    if id != nil{ 
     dictionary["id"] = id 
    } 
    if imagePath != nil{ 
     dictionary["imagePath"] = imagePath 
    } 
    if joinDate != nil{ 
     dictionary["joinDate"] = joinDate 
    } 
    if lastName != nil{ 
     dictionary["lastName"] = lastName 
    } 
    if level != nil{ 
     dictionary["level"] = level 
    } 
    if loggedInUserClientId != nil{ 
     dictionary["loggedInUserClientId"] = loggedInUserClientId 
    } 
    if loggedInUserId != nil{ 
     dictionary["loggedInUserId"] = loggedInUserId 
    } 
    if loggedInUserName != nil{ 
     dictionary["loggedInUserName"] = loggedInUserName 
    } 
    if password != nil{ 
     dictionary["password"] = password 
    } 
    if passwordHash != nil{ 
     dictionary["passwordHash"] = passwordHash 
    } 
    if phoneNumber != nil{ 
     dictionary["phoneNumber"] = phoneNumber 
    } 
    if role != nil{ 
     dictionary["role"] = role.toDictionary() 
    } 
    if roleId != nil{ 
     dictionary["roleId"] = roleId 
    } 
    if roleName != nil{ 
     dictionary["roleName"] = roleName 
    } 
    if securityStamp != nil{ 
     dictionary["securityStamp"] = securityStamp 
    } 
    if userName != nil{ 
     dictionary["userName"] = userName 
    } 
    return dictionary 
} 

/** 
* NSCoding required initializer. 
* Fills the data from the passed decoder 
*/ 
@objc required init(coder aDecoder: NSCoder) 
{ 
    active = aDecoder.decodeObject(forKey: "active") as? Bool 
    billingAddress = aDecoder.decodeObject(forKey: "billingAddress") as? AnyObject 
    clientId = aDecoder.decodeObject(forKey: "clientId") as? Int 
    confirmPassword = aDecoder.decodeObject(forKey: "confirmPassword") as? AnyObject 
    createdByUserName = aDecoder.decodeObject(forKey: "createdByUserName") as? AnyObject 
    domainInfo = aDecoder.decodeObject(forKey: "domainInfo") as? AnyObject 
    email = aDecoder.decodeObject(forKey: "email") as? String 
    emailConfirmed = aDecoder.decodeObject(forKey: "emailConfirmed") as? Bool 
    emailStatus = aDecoder.decodeObject(forKey: "emailStatus") as? Bool 
    firstName = aDecoder.decodeObject(forKey: "firstName") as? String 
    id = aDecoder.decodeObject(forKey: "id") as? String 
    imagePath = aDecoder.decodeObject(forKey: "imagePath") as? AnyObject 
    joinDate = aDecoder.decodeObject(forKey: "joinDate") as? String 
    lastName = aDecoder.decodeObject(forKey: "lastName") as? String 
    level = aDecoder.decodeObject(forKey: "level") as? Int 
    loggedInUserClientId = aDecoder.decodeObject(forKey: "loggedInUserClientId") as? Int 
    loggedInUserId = aDecoder.decodeObject(forKey: "loggedInUserId") as? AnyObject 
    loggedInUserName = aDecoder.decodeObject(forKey: "loggedInUserName") as? AnyObject 
    password = aDecoder.decodeObject(forKey: "password") as? AnyObject 
    passwordHash = aDecoder.decodeObject(forKey: "passwordHash") as? AnyObject 
    phoneNumber = aDecoder.decodeObject(forKey: "phoneNumber") as? String 
    role = aDecoder.decodeObject(forKey: "role") as? sguserrole 
    roleId = aDecoder.decodeObject(forKey: "roleId") as? AnyObject 
    roleName = aDecoder.decodeObject(forKey: "roleName") as? String 
    securityStamp = aDecoder.decodeObject(forKey: "securityStamp") as? AnyObject 
    userName = aDecoder.decodeObject(forKey: "userName") as? String 

} 

/** 
* NSCoding required method. 
* Encodes mode properties into the decoder 
*/ 
@objc func encode(with aCoder: NSCoder) 
{ 
    if active != nil{ 
     aCoder.encode(active, forKey: "active") 
    } 
    if billingAddress != nil{ 
     aCoder.encode(billingAddress, forKey: "billingAddress") 
    } 
    if clientId != nil{ 
     aCoder.encode(clientId, forKey: "clientId") 
    } 
    if confirmPassword != nil{ 
     aCoder.encode(confirmPassword, forKey: "confirmPassword") 
    } 
    if createdByUserName != nil{ 
     aCoder.encode(createdByUserName, forKey: "createdByUserName") 
    } 
    if domainInfo != nil{ 
     aCoder.encode(domainInfo, forKey: "domainInfo") 
    } 
    if email != nil{ 
     aCoder.encode(email, forKey: "email") 
    } 
    if emailConfirmed != nil{ 
     aCoder.encode(emailConfirmed, forKey: "emailConfirmed") 
    } 
    if emailStatus != nil{ 
     aCoder.encode(emailStatus, forKey: "emailStatus") 
    } 
    if firstName != nil{ 
     aCoder.encode(firstName, forKey: "firstName") 
    } 
    if id != nil{ 
     aCoder.encode(id, forKey: "id") 
    } 
    if imagePath != nil{ 
     aCoder.encode(imagePath, forKey: "imagePath") 
    } 
    if joinDate != nil{ 
     aCoder.encode(joinDate, forKey: "joinDate") 
    } 
    if lastName != nil{ 
     aCoder.encode(lastName, forKey: "lastName") 
    } 
    if level != nil{ 
     aCoder.encode(level, forKey: "level") 
    } 
    if loggedInUserClientId != nil{ 
     aCoder.encode(loggedInUserClientId, forKey: "loggedInUserClientId") 
    } 
    if loggedInUserId != nil{ 
     aCoder.encode(loggedInUserId, forKey: "loggedInUserId") 
    } 
    if loggedInUserName != nil{ 
     aCoder.encode(loggedInUserName, forKey: "loggedInUserName") 
    } 
    if password != nil{ 
     aCoder.encode(password, forKey: "password") 
    } 
    if passwordHash != nil{ 
     aCoder.encode(passwordHash, forKey: "passwordHash") 
    } 
    if phoneNumber != nil{ 
     aCoder.encode(phoneNumber, forKey: "phoneNumber") 
    } 
    if role != nil{ 
     aCoder.encode(role, forKey: "role") 
    } 
    if roleId != nil{ 
     aCoder.encode(roleId, forKey: "roleId") 
    } 
    if roleName != nil{ 
     aCoder.encode(roleName, forKey: "roleName") 
    } 
    if securityStamp != nil{ 
     aCoder.encode(securityStamp, forKey: "securityStamp") 
    } 
    if userName != nil{ 
     aCoder.encode(userName, forKey: "userName") 
    } 

} 

}

模式2:

import Foundation 


    class sguserwithoutdeactivation : NSObject, NSCoding{ 

var active : Bool! 
var billingAddress : AnyObject! 
var clientId : Int! 
var confirmPassword : AnyObject! 
var createdByUserName : AnyObject! 
var domainInfo : AnyObject! 
var email : String! 
var emailConfirmed : Bool! 
var emailStatus : Bool! 
var firstName : String! 
var id : String! 
var imagePath : AnyObject! 
var joinDate : String! 
var lastName : String! 
var level : Int! 
var loggedInUserClientId : Int! 
var loggedInUserId : AnyObject! 
var loggedInUserName : AnyObject! 
var password : AnyObject! 
var passwordHash : AnyObject! 
var phoneNumber : String! 
var role : sguserrole! 
var roleId : AnyObject! 
var roleName : String! 
var securityStamp : AnyObject! 
var userName : String! 


/** 
* Instantiate the instance using the passed dictionary values to set the properties values 
*/ 
init(fromDictionary dictionary: NSDictionary){ 
    active = dictionary["active"] as? Bool 
    billingAddress = dictionary["billingAddress"] as? AnyObject 
    clientId = dictionary["clientId"] as? Int 
    confirmPassword = dictionary["confirmPassword"] as? AnyObject 
    createdByUserName = dictionary["createdByUserName"] as? AnyObject 
    domainInfo = dictionary["domainInfo"] as? AnyObject 
    email = dictionary["email"] as? String 
    emailConfirmed = dictionary["emailConfirmed"] as? Bool 
    emailStatus = dictionary["emailStatus"] as? Bool 
    firstName = dictionary["firstName"] as? String 
    id = dictionary["id"] as? String 
    imagePath = dictionary["imagePath"] as? AnyObject 
    joinDate = dictionary["joinDate"] as? String 
    lastName = dictionary["lastName"] as? String 
    level = dictionary["level"] as? Int 
    loggedInUserClientId = dictionary["loggedInUserClientId"] as? Int 
    loggedInUserId = dictionary["loggedInUserId"] as? AnyObject 
    loggedInUserName = dictionary["loggedInUserName"] as? AnyObject 
    password = dictionary["password"] as? AnyObject 
    passwordHash = dictionary["passwordHash"] as? AnyObject 
    phoneNumber = dictionary["phoneNumber"] as? String 
    if let roleData = dictionary["role"] as? NSDictionary{ 
     role = sguserrole(fromDictionary: roleData) 
    } 
    roleId = dictionary["roleId"] as? AnyObject 
    roleName = dictionary["roleName"] as? String 
    securityStamp = dictionary["securityStamp"] as? AnyObject 
    userName = dictionary["userName"] as? String 
} 

/** 
* Returns all the available property values in the form of NSDictionary object where the key is the approperiate json key and the value is the value of the corresponding property 
*/ 
func toDictionary() -> NSDictionary 
{ 
    var dictionary = NSMutableDictionary() 
    if active != nil{ 
     dictionary["active"] = active 
    } 
    if billingAddress != nil{ 
     dictionary["billingAddress"] = billingAddress 
    } 
    if clientId != nil{ 
     dictionary["clientId"] = clientId 
    } 
    if confirmPassword != nil{ 
     dictionary["confirmPassword"] = confirmPassword 
    } 
    if createdByUserName != nil{ 
     dictionary["createdByUserName"] = createdByUserName 
    } 
    if domainInfo != nil{ 
     dictionary["domainInfo"] = domainInfo 
    } 
    if email != nil{ 
     dictionary["email"] = email 
    } 
    if emailConfirmed != nil{ 
     dictionary["emailConfirmed"] = emailConfirmed 
    } 
    if emailStatus != nil{ 
     dictionary["emailStatus"] = emailStatus 
    } 
    if firstName != nil{ 
     dictionary["firstName"] = firstName 
    } 
    if id != nil{ 
     dictionary["id"] = id 
    } 
    if imagePath != nil{ 
     dictionary["imagePath"] = imagePath 
    } 
    if joinDate != nil{ 
     dictionary["joinDate"] = joinDate 
    } 
    if lastName != nil{ 
     dictionary["lastName"] = lastName 
    } 
    if level != nil{ 
     dictionary["level"] = level 
    } 
    if loggedInUserClientId != nil{ 
     dictionary["loggedInUserClientId"] = loggedInUserClientId 
    } 
    if loggedInUserId != nil{ 
     dictionary["loggedInUserId"] = loggedInUserId 
    } 
    if loggedInUserName != nil{ 
     dictionary["loggedInUserName"] = loggedInUserName 
    } 
    if password != nil{ 
     dictionary["password"] = password 
    } 
    if passwordHash != nil{ 
     dictionary["passwordHash"] = passwordHash 
    } 
    if phoneNumber != nil{ 
     dictionary["phoneNumber"] = phoneNumber 
    } 
    if role != nil{ 
     dictionary["role"] = role.toDictionary() 
    } 
    if roleId != nil{ 
     dictionary["roleId"] = roleId 
    } 
    if roleName != nil{ 
     dictionary["roleName"] = roleName 
    } 
    if securityStamp != nil{ 
     dictionary["securityStamp"] = securityStamp 
    } 
    if userName != nil{ 
     dictionary["userName"] = userName 
    } 
    return dictionary 
} 

/** 
* NSCoding required initializer. 
* Fills the data from the passed decoder 
*/ 
@objc required init(coder aDecoder: NSCoder) 
{ 
    active = aDecoder.decodeObject(forKey: "active") as? Bool 
    billingAddress = aDecoder.decodeObject(forKey: "billingAddress") as? AnyObject 
    clientId = aDecoder.decodeObject(forKey: "clientId") as? Int 
    confirmPassword = aDecoder.decodeObject(forKey: "confirmPassword") as? AnyObject 
    createdByUserName = aDecoder.decodeObject(forKey: "createdByUserName") as? AnyObject 
    domainInfo = aDecoder.decodeObject(forKey: "domainInfo") as? AnyObject 
    email = aDecoder.decodeObject(forKey: "email") as? String 
    emailConfirmed = aDecoder.decodeObject(forKey: "emailConfirmed") as? Bool 
    emailStatus = aDecoder.decodeObject(forKey: "emailStatus") as? Bool 
    firstName = aDecoder.decodeObject(forKey: "firstName") as? String 
    id = aDecoder.decodeObject(forKey: "id") as? String 
    imagePath = aDecoder.decodeObject(forKey: "imagePath") as? AnyObject 
    joinDate = aDecoder.decodeObject(forKey: "joinDate") as? String 
    lastName = aDecoder.decodeObject(forKey: "lastName") as? String 
    level = aDecoder.decodeObject(forKey: "level") as? Int 
    loggedInUserClientId = aDecoder.decodeObject(forKey: "loggedInUserClientId") as? Int 
    loggedInUserId = aDecoder.decodeObject(forKey: "loggedInUserId") as? AnyObject 
    loggedInUserName = aDecoder.decodeObject(forKey: "loggedInUserName") as? AnyObject 
    password = aDecoder.decodeObject(forKey: "password") as? AnyObject 
    passwordHash = aDecoder.decodeObject(forKey: "passwordHash") as? AnyObject 
    phoneNumber = aDecoder.decodeObject(forKey: "phoneNumber") as? String 
    role = aDecoder.decodeObject(forKey: "role") as? sguserrole 
    roleId = aDecoder.decodeObject(forKey: "roleId") as? AnyObject 
    roleName = aDecoder.decodeObject(forKey: "roleName") as? String 
    securityStamp = aDecoder.decodeObject(forKey: "securityStamp") as? AnyObject 
    userName = aDecoder.decodeObject(forKey: "userName") as? String 

} 

/** 
* NSCoding required method. 
* Encodes mode properties into the decoder 
*/ 
@objc func encode(with aCoder: NSCoder) 
{ 
    if active != nil{ 
     aCoder.encode(active, forKey: "active") 
    } 
    if billingAddress != nil{ 
     aCoder.encode(billingAddress, forKey: "billingAddress") 
    } 
    if clientId != nil{ 
     aCoder.encode(clientId, forKey: "clientId") 
    } 
    if confirmPassword != nil{ 
     aCoder.encode(confirmPassword, forKey: "confirmPassword") 
    } 
    if createdByUserName != nil{ 
     aCoder.encode(createdByUserName, forKey: "createdByUserName") 
    } 
    if domainInfo != nil{ 
     aCoder.encode(domainInfo, forKey: "domainInfo") 
    } 
    if email != nil{ 
     aCoder.encode(email, forKey: "email") 
    } 
    if emailConfirmed != nil{ 
     aCoder.encode(emailConfirmed, forKey: "emailConfirmed") 
    } 
    if emailStatus != nil{ 
     aCoder.encode(emailStatus, forKey: "emailStatus") 
    } 
    if firstName != nil{ 
     aCoder.encode(firstName, forKey: "firstName") 
    } 
    if id != nil{ 
     aCoder.encode(id, forKey: "id") 
    } 
    if imagePath != nil{ 
     aCoder.encode(imagePath, forKey: "imagePath") 
    } 
    if joinDate != nil{ 
     aCoder.encode(joinDate, forKey: "joinDate") 
    } 
    if lastName != nil{ 
     aCoder.encode(lastName, forKey: "lastName") 
    } 
    if level != nil{ 
     aCoder.encode(level, forKey: "level") 
    } 
    if loggedInUserClientId != nil{ 
     aCoder.encode(loggedInUserClientId, forKey: "loggedInUserClientId") 
    } 
    if loggedInUserId != nil{ 
     aCoder.encode(loggedInUserId, forKey: "loggedInUserId") 
    } 
    if loggedInUserName != nil{ 
     aCoder.encode(loggedInUserName, forKey: "loggedInUserName") 
    } 
    if password != nil{ 
     aCoder.encode(password, forKey: "password") 
    } 
    if passwordHash != nil{ 
     aCoder.encode(passwordHash, forKey: "passwordHash") 
    } 
    if phoneNumber != nil{ 
     aCoder.encode(phoneNumber, forKey: "phoneNumber") 
    } 
    if role != nil{ 
     aCoder.encode(role, forKey: "role") 
    } 
    if roleId != nil{ 
     aCoder.encode(roleId, forKey: "roleId") 
    } 
    if roleName != nil{ 
     aCoder.encode(roleName, forKey: "roleName") 
    } 
    if securityStamp != nil{ 
     aCoder.encode(securityStamp, forKey: "securityStamp") 
    } 
    if userName != nil{ 
     aCoder.encode(userName, forKey: "userName") 
    } 

} 

} 

请帮助,如果任何人都知道解决的办法。

+0

什么是使用两个独立的类具有相同内容的目的是什么? – vadian

+0

正如我所说我有开关,如果用户被选中包括deactive然后一些dat将失踪到目前为止,我这样做 –

回答

0

首先,我建议以大写字母开头,这会让您的代码更容易阅读。

为了解决您的问题,我会制定一个协议,包含您想要显示的所有常见字段,然后使这两个类符合该协议。然后,您可以在您的视图控制器中拥有该协议的数组,并且您可以将其填入任一类的成员。

protocol SGUserType { 
var active: Bool { get set } 
var billingAddress: Any { get set } 
... 
} 

class SGUserData : SGUserType, NSObject, NSCoding { 
var active: Bool 
var billingAddress: Any 
... 
} 

因此,在您的ViewController而不是有:

var userlistwithoutdeactivation : sguserlistdatawithoutdeactivation? 
var userdatawithoutdeactivation = [sguserwithoutdeactivation]() 
var userdata = [sguserdata]() 

您可以:

var userData = [SGUserType]() 
+0

如何使用。 –

+0

请提出你的回答并解释如何使用 –

+0

我假设你在下面这行发生的错误: self.userlistwithoutdeactivation?.data.append(pom) 这是因为你尝试向数组中添加一种类型的数据另一种类型。如果两个类都符合相同的协议,则可以将数组指定为该类型,然后可以将两种类型添加到该类中。 – Gottelicious

相关问题