【发布时间】:2017-10-09 05:04:07
【问题描述】:
我有两个 JSON 网址。想要在两个 UIPickerView 之间进行解析。一个 UIPickerView 代表国家,另一个 UIPickerView 代表城市。我已经能够在 Country 的第一个 UIPickerView 中解析 JSON,这里的数据非常完美。但是当单击城市的 UIPickerView 时,我在 DidSelectRow 函数中收到了一条线程消息。请尝试解决这个问题
这是我的代码。
var arrCountryPicker = [CountryPicker]()
var arrCitiPicker = [CityPicker]()
var id = 0
var country_id = 0
我的两个网址
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{
关于down代码的线程是“线程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
}
}
【问题讨论】:
-
确保您的网点都已连接。可能是您的
cityTextField插座未连接。 -
如果让也试试。可能值为零。试试stackoverflow.com/questions/36871398/…
-
兄弟你在哪一行遇到这个问题
-
@Anbu.Karthik
self.cityTextField.text = self.arrCitiPicker[row].name在 didselectRow 函数行中 -
你在当前班级中连接了cityTextField
标签: json swift uipickerview