0
이 코드는 JSON 데이터를 가져 와서이 코드가 포함 된보기 컨트롤러에 표시합니다. 다른보기 컨트롤러에서이 페이지의 결과를 사용하는 방법을 알아 내려고 노력하고 있습니다. 두 번째보기 컨트롤러의 코드는 표시 할 코드의 결과를 얻으려고합니다.보기 컨트롤러 간의 JSON 데이터 구문 분석
func paraseData()
{
fetchedFiName = []
let url = ""
var request = URLRequest(url: URL(string: url)!)
request.httpMethod = "GET"
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration, delegate: nil, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: request) { (data, response, error) in
if error != nil {
print("Error")
}
else{
do{
let fetchedData = try JSONSerialization.jsonObject(with: data!, options: .mutableLeaves) as! NSArray
//print(fecthdata)
for eachFetchedfiName in fetchedData {
let eachfiName = eachFetchedfiName as! [String :Any]
let fiName = eachfiName["financial_institution"] as! String
let oneYear = eachfiName["one_year"] as! String
let twoYear = eachfiName["two_year"] as! String
let threeYear = eachfiName["three_year"] as! String
let fourYear = eachfiName["four_year"] as! String
let fiveYear = eachfiName["five_year"] as! String
self.fetchedFiName.append(rates(fiName: fiName, oneYear: oneYear, twoYear: twoYear, threeYear: threeYear, fourYear: fourYear, fiveYear: fiveYear))
}
//print(self.fetchedFiName)
self.mtgRates.reloadData()
}
catch{
print("Error 2")
}
}
}
task.resume()
}
}
class rates {
var fiName: String
var oneYear: String
var twoYear: String
var threeYear: String
var fourYear: String
var fiveYear: String
init(fiName: String, oneYear: String, twoYear: String, threeYear: String, fourYear: String, fiveYear: String) {
self.fiName = fiName
self.oneYear = oneYear
self.twoYear = twoYear
self.threeYear = threeYear
self.fourYear = fourYear
self.fiveYear = fiveYear
}
}
이것은 두 번째보기 컨트롤러에서 결과를 전달하려고 시도하는 코드입니다. pickerview에 JSON 데이터에있는 대금업자의 이름을 채우려 고 노력 중입니다 ... 나는이 문제를 며칠 동안 고심하고 있습니다 ... 생각 해봐.
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return fetchedFiName[row].fiName
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return fetchedFiName.count
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
lenderName.text = fetchedFiName[row].fiName
self.view.endEditing(false)
}