PikerView
ビューコントローラでデータが表示されません。pickerviewは、アレイからのデータを表示しません。
いくつかの配列リテラル値でテストするとうまく動作します。
どこかでデータをリロードする必要がありますか?あなたはそれを再ロードするためにあなたのpickerviewにreloadAllComponents
を呼び出す必要があります(私はそれを確認していないと私はあなたが持っているprint
文でデータを参照行うと仮定)あなたはURLからデータを取得行うことを提供
class FirstViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource
{
@IBOutlet var baseCurrency: UITextField!
@IBOutlet var excahngeCurrency: UITextField!
@IBOutlet var dropDown: UIPickerView!
var list: [String: AnyObject] = [String: AnyObject]()
var titles: [String] = []
override func viewDidLoad()
{
super.viewDidLoad()
let url:URL = URL(string: "https://openexchangerates.org/api/currencies.json?app_id=7486951aeb994599a08cd7979bef3c03")!
Alamofire.request(url).responseJSON(completionHandler:
{
response in
switch response.result
{
case.success:
self.list = response.result.value as! [String: AnyObject]
for (key, _) in self.list
{
self.titles += [key]
}
print(self.titles)
case.failure:
print("error")
}
})
}
func numberOfComponents(in pickerView: UIPickerView) -> Int
{
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
return self.titles[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
return self.titles.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
exchangeCurrency.text = self.titles[row]
}
}
おかげKrunal。私はそれを追加すると、私は次のエラーが表示されます: 'pickerView(_:titleForRow:forComponent :)'へのあいまいな参照 ' –
あなたは正確なエラーラインを共有することができます...ここに独自のピッカービューインスタンスを使用しましたか... dropDown。私は自分のコードをコピーして自分のコードに置き換えたと思います。ピッカーインスタンスを更新していない可能性があります。私は私の答えを更新しました。ピッカーインスタンスを更新していない場合は、もう一度お試しください。 – Krunal
は魅力的に働いた。ありがとう、トン! –