title: Add response value to PickerView in swift3
body: <p>I have made 4 picker in my project, one of that is <code>"source"</code>. i have received the shop response as well with the source. I want that whatever i received as response i want that in my pickerView.</p>
  
  <pre><code>import UIKit
  
  class bookTicketViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate ,XMLParserDelegate{
  
      @IBOutlet var sourceTextField: UITextField!
      @IBOutlet var destinationTextField: UITextField!
      @IBOutlet var adultsTextField: UITextField!
      @IBOutlet var childTextField: UITextField!
  
      @IBOutlet weak var sourcePicker: UIPickerView!
      @IBOutlet weak var destinationPicker: UIPickerView!
      @IBOutlet weak var adultsPicker: UIPickerView!
      @IBOutlet weak var childPicker: UIPickerView!
  
      var source = NSMutableArray()
      var destination = ["Mumbai","Pune","Jaipur","Baroda","Goa"]
      var adults = ["1","2","3","4","5","6","7","8","9","10"]
      var child = ["0","1","2","3","4","5","6","7","8","9","10"]
  
      var parser = XMLParser()
      var parser1 = XMLParser()
      var posts = NSMutableArray()
      var posts1 = NSMutableArray()
      var elements = NSMutableDictionary()
      var element = NSString()
      var total_amount = NSMutableString()
      var xmlData = NSMutableData()
      var ticket_no = NSMutableString()
      var adultAmount = NSMutableString()
      var childAmount = NSMutableString()
      var source1 = NSMutableArray()
      var title1 = NSMutableString()
  
      var date = NSMutableArray()
  
      override func viewDidLoad() {
          super.viewDidLoad()
          self.HelloWebService()
          print("Get ",self.source)
  
      }
      override func viewDidAppear(_ animated: Bool) {
  
      }
  
  
      @IBAction func confirmTicketSubmitButton(_ sender: Any) {
  
          self.service1()
         // self.service2()
      }
  
      func service1()
      {
  
          let source = sourceTextField.text
          let destination = destinationTextField.text
          let adults = adultsTextField.text
          let child = childTextField.text
  
          let is_SoapMessage  = String  (format :"&lt;soapenv:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'&gt;&lt;soapenv:Header/&gt;&lt;soapenv:Body&gt;&lt;ticket_amount soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'&gt;&lt;SourceTextField xsi:type='xsd:string'&gt;\(source!)&lt;/SourceTextField&gt;&lt;DestinationTextField xsi:type='xsd:string'&gt;\(destination!)&lt;/DestinationTextField&gt;&lt;AdultsTextField xsi:type='xsd:int'&gt;\(adults!)&lt;/AdultsTextField&gt;&lt;ChildTextField xsi:type='xsd:int'&gt;\(child!)&lt;/ChildTextField&gt;&lt;/ticket_amount&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;")
  
          let is_URL: String = "http://192.168.43.23/app/app/service/registrationService.php?wsdl"
  
          let lobj_Request = NSMutableURLRequest(url: NSURL(string: is_URL)! as URL)
          let session = URLSession.shared
  
          lobj_Request.httpMethod = "POST"
          lobj_Request.httpBody = is_SoapMessage.data(using: String.Encoding.utf8)
  
          lobj_Request.addValue("192.168.43.23", forHTTPHeaderField: "Host")
  
          lobj_Request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
  
          lobj_Request.addValue(String (is_SoapMessage), forHTTPHeaderField: "Content-Length")
  
          lobj_Request.addValue("http://192.168.43.23/app/app/service/registrationService.php/ticket_amount/ticket_amount", forHTTPHeaderField: "SOAPAction")
          let task = session.dataTask(with: lobj_Request as URLRequest, completionHandler: {data, response, error -&gt; Void in
              print("response = \(response)")
  
              let xmlData = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
  
              self.xmlData = NSMutableData(data: data!)
  
              print("Body: \(xmlData)")
  
              self.beginParsing()
  
              if error != nil
              {
                  print("Error: ")
              }
  
          })
          task.resume()
      }
  
      func HelloWebService()
      {
          let is_SoapMessage  = String  (format :"&lt;soapenv:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'&gt;&lt;soapenv:Header/&gt;&lt;soapenv:Body&gt;&lt;rout_detail soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;")
  
  
          let is_URL: String = "http://192.168.43.23/app/app/service/registrationService.php?wsdl"
  
          let lobj_Request = NSMutableURLRequest(url: NSURL(string: is_URL)! as URL)
          let session = URLSession.shared
  
          lobj_Request.httpMethod = "POST"
          lobj_Request.httpBody = is_SoapMessage.data(using: String.Encoding.utf8)
  
          lobj_Request.addValue("192.168.43.23", forHTTPHeaderField: "Host")
  
          lobj_Request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
  
          lobj_Request.addValue(String (is_SoapMessage), forHTTPHeaderField: "Content-Length")
  
          lobj_Request.addValue("http://192.168.43.23/app/app/service/registrationService.php/rout_detail", forHTTPHeaderField: "SOAPAction")
          let task = session.dataTask(with: lobj_Request as URLRequest, completionHandler: {data, response, error -&gt; Void in
              print("response = \(response)")
  
              let xmlData = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
  
              self.xmlData = NSMutableData(data: data!)
  
              print("Body: \(xmlData)")
  
              self.beginParsing()
              print("hello \(self.title1)")
              print("hello \(self.date)")
  
              self.source.add(self.date)
  
              print("Joom",self.source)
  
              if error != nil
              {
                  print("Error: ")
              }
  
          })
          task.resume()
      }
  
  
  
      func beginParsing()
      {
          posts = []
          parser = (XMLParser(data:xmlData as Data))
          parser.delegate = self
          parser.parse()
  
  
          self.source.add(self.date)
  
  
  //        DispatchQueue.main.async(execute: {
  //            let storyboard = UIStoryboard(name: "Main", bundle: nil)
  //            let destViewController = storyboard.instantiateViewController(withIdentifier: "confirmTicketView") as! confirmTicketViewController
  //            destViewController.postTicketNo = "\(self.ticket_no)"
  //            destViewController.postTotalAmount = "\(self.total_amount)"
  //            destViewController.postAdultAmount = "\(self.adultAmount)"
  //            destViewController.postChildAmount = "\(self.childAmount)"
  //            destViewController.sourceData = self.sourceTextField.text!
  //            destViewController.destinationData = self.destinationTextField.text!
  //            destViewController.adultsData = self.adultsTextField.text!
  //            destViewController.childData = self.childTextField.text!
  //            
  //            self.present(destViewController, animated: true, completion: nil)
  //        });
      }
  
  
      // didStartElement
      func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String])    {
  
          element = elementName as NSString
  
          if (elementName as NSString).isEqual(to:"response")
          {
              elements = NSMutableDictionary()
              elements = [:]
             ticket_no = NSMutableString()
              ticket_no = ""
              total_amount = NSMutableString()
              total_amount = ""
              adultAmount = NSMutableString()
              adultAmount = ""
              childAmount = NSMutableString()
              childAmount = ""
  
  
  
          }
          if (elementName as NSString).isEqual(to: "source")
          {
              elements = NSMutableDictionary()
              elements = [:]
              title1 = NSMutableString()
              title1 = ""
              date = NSMutableArray()
              date = []
  
          }
          //  print(String(format : "didStartElement / elementName %@", elementName))
  
  
      }
  
      // FoundCharacters
  
      func parser(_ parser: XMLParser, foundCharacters string: String)
      {
          let data = string.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines).uppercased()
  
          let str = data.replacingOccurrences(of: "&lt;[^&gt;]+&gt;", with: "", options: .regularExpression, range: nil)
  
          if element.isEqual(to:"ticket_no") {
              ticket_no.append(string)
              print(ticket_no)
          }
          if element.isEqual(to:"total_amount") {
              total_amount.append(string)
              print(total_amount)
          }
          if element.isEqual(to:"adultAmount") {
              adultAmount.append(string)
          }
              if element.isEqual(to:"childAmount") {
                  childAmount.append(string)
          }
              else if element.isEqual(to: "item") {
  
  
                  self.date.add(str)
          }
  
      }
  
      // DidEndElement
      func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
      {
          //  print(String(format : "didEndElement / elementName %@", elementName))
          if (elementName as NSString).isEqual (to:"response") {
              if !ticket_no.isEqual(nil) {
                  elements.setObject(ticket_no, forKey:"ticket_no" as NSCopying)
              }
              if !total_amount.isEqual(nil) {
                  elements.setObject(total_amount, forKey:"total_amount" as NSCopying)
              }
              if !adultAmount.isEqual(nil) {
                  elements.setObject(adultAmount, forKey:"adultAmount" as NSCopying)
              }
              if !childAmount.isEqual(nil) {
                  elements.setObject(childAmount, forKey:"childAmount" as NSCopying)
              }
  
              posts.add(elements)
          }
          if (elementName as NSString).isEqual(to: "source")
          {
  
  
              if !date.isEqual(nil) {
                  elements.setObject(date, forKey: "item" as NSCopying)
              }
              posts.add(elements)
          }
      }
      func numberOfComponents(in pickerView: UIPickerView) -&gt; Int
      {
          return 1
      }
  
      func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -&gt; Int {
  
          var countrows: Int = self.source.count
  
          if pickerView == sourcePicker
          {
              countrows = self.source.count
          }
          if pickerView == destinationPicker
          {
              countrows = self.destination.count
          }
          if pickerView == adultsPicker
          {
              countrows = self.adults.count
          }
          if pickerView == childPicker
          {
              countrows = self.child.count
          }
          return countrows
      }
  
      func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -&gt; String? {
  
  
  
          print("get source1",self.source)
  
          if pickerView == sourcePicker
          {
              self.view.endEditing(true)
              return self.source[row] as? String
          }
          else if pickerView == destinationPicker
          {
              self.view.endEditing(true)
              return destination[row]
          }
          else if pickerView == adultsPicker
          {
              self.view.endEditing(true)
              return adults[row]
          }
          else if pickerView == childPicker
          {
              self.view.endEditing(true)
              return child[row]
          }
          return ""
      }
  
  
      func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
  
          if pickerView == sourcePicker   {
  
              self.sourceTextField.text = self.source[row] as? String
              self.sourcePicker.isHidden = true
          }
          else if pickerView == destinationPicker   {
              self.destinationTextField.text = self.destination[row]
              self.destinationPicker.isHidden = true
          }
          else if pickerView == adultsPicker   {
              self.adultsTextField.text = self.adults[row]
              self.adultsPicker.isHidden = true
          }
          else if pickerView == childPicker   {
              self.childTextField.text = self.child[row]
              self.childPicker.isHidden = true
          }
      }
  
  
      func textFieldDidBeginEditing(_ textField: UITextField)
      {
          if textField == self.sourceTextField
          {
              self.sourcePicker.isHidden = false
              textField.endEditing(true)
          }
          if textField == self.destinationTextField
          {
              self.destinationPicker.isHidden = false
              textField.endEditing(true)
          }
          if textField == self.adultsTextField
          {
              self.adultsPicker.isHidden = false
              textField.endEditing(true)
          }
          if textField == self.childTextField
          {
              self.childPicker.isHidden = false
              textField.endEditing(true)
          }
      }}
  </code></pre>
  
  <p><strong>My shop Response</strong></p>
  
  <pre><code>(
      RAJKOT,
      AHMEDABAD,
      SURAT,
      VAPI,
      MUMBAI,
      PUNE,
      JAIPUR,
      BARODA,
      GOA
  )
  </code></pre>