J'ai deux URL JSON. vouloir analyser entre deux UIPickerView. un UIPickerView for Country, et un autre pour la ville. J'ai pu analyser JSON en premier UIPickerView of Country, ici les données arrivent parfaitement. mais j'ai reçu un message de thread dans la fonction DidSelectRow lorsque je clique sur UIPickerView de la ville. s'il vous plaît essayer de résoudre ce problèmeSwift: Json analyser dans deux sélecteurVoir entre le pays et la ville
voici mon code.
var arrCountryPicker = [CountryPicker]()
var arrCitiPicker = [CityPicker]()
var id = 0
var country_id = 0
mes deux 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
}
}
Assurez-vous que sont tous connectés vos points de vente. Il se peut que votre prise 'cityTextField' ne soit pas connectée. – rmaddy
Essayez si laissez-le aussi. Peut être la valeur est nulle. essayez https://stackoverflow.com/questions/36871398/thread-1-exc-bad-instruction-code-exc-1386-invop-subcode-0x0 –
dans quelle ligne vous avez fait face à cette question bro –