uipickerview国家列表迅速3 [英] list of countries into uipickerview swift 3
本文介绍了uipickerview国家列表迅速3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用谷歌搜索了如何找到国家列表并尝试将其实施到PickerView
中,但是我被困在尝试执行countries.count
的位置,这给了我一个错误:
I googled how to find the list of the countries and trying to implement into PickerView
, but I am stuck at this point where I try to do countries.count
it gives me an error saying:
无法将类型为'int'的返回表达式转换为类型为'string'的返回表达式 有什么建议吗?
cannot convert return expression of type 'int' to return type 'string' any suggestions?
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate{
@IBOutlet weak var pickerValue: UIPickerView!
let countries = NSLocale.isoCountryCodes.map { (code:String) -> String in
let id = NSLocale.localeIdentifier(fromComponents: [NSLocale.Key.countryCode.rawValue: code])
return NSLocale(localeIdentifier: "en_US").displayName(forKey: NSLocale.Key.identifier, value: id) ?? "Country not found for code: \(code)"
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return countries.count
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
推荐答案
您需要在方法numberOfRowsInComponent
中返回数组计数,而在titleForRow
中,您需要返回数组对象,表明它将在选择器中显示.
You need to return array count in method numberOfRowsInComponent
and in the titleForRow
you need to return array object, show that it will show in picker.
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return countries.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return countries[row]
}
这篇关于uipickerview国家列表迅速3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文