I have two JSON Url. want to parse between two UIPickerView. one UIPickerView for Country, and another one for the city. I have been able to parse JSON in first UIPickerView of Country, in here data is coming perfectly. but I got a thread message in DidSelectRow func when clicking UIPickerView of the city. please try to solve this problem
here is my code.
var arrCountryPicker = [CountryPicker]()
var arrCitiPicker = [CityPicker]()
var id = 0
var country_id = 0
my two URL
let url = URL(string: "http://......./mobile-app/countries")
let url = URL(string: "http://......../mobile-app/city-by-country-id?country_id="+String(country_id))
PickerViewCode
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
var country: Int = arrCountryPicker.count
if pickerView == cityPickerView {
country = self.arrCitiPicker.count
}
return country
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == countryPickerView {
let titleRow = arrCountryPicker[row].name
return titleRow
} else if pickerView == cityPickerView{
let titleRow = arrCitiPicker[row].name
return titleRow
}
return ""
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
countryTextField.text = arrCountryPicker[row].name
if pickerView == countryPickerView {
self.countryTextField.text = self.arrCountryPicker[row].name
self.country_id = self.arrCountryPicker[row].id!
self.countryPickerView.isHidden = true
}
else if pickerView == cityPickerView{
Thread about down code is "Thread 1: exc_bad_instruction(code=exc_1386_invop,subcode=0x0)
self.cityTextField.text = self.arrCitiPicker[row].name
self.cityPickerView.isHidden = true
}
self.view.endEditing(true)
}
func textFieldDidBeginEditing(_ textField: UITextField) {
if (textField == countryTextField){
self.countryPickerView.isHidden = false
}
else if (textField == cityTextField){
self.cityPickerView.isHidden = false
}
}