我正在学习Swift语言,我希望制作一个与PickerView选择的标签相同的标签。我正在制作倒数计时器以学习语言并了解NSTimer的计时。我试图将数字,这是一个双倍,转换为字符串,这将是UILabel。
这就是我对PickerView的看法。 // UIPickerView
var numbers = [1.00, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00,8.00, 9.00, 10.00, 11.00,12.00, 13.00, 14.00, 15.00, 16.00, 17.00, 18.00, 19.00, 20.00]
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return numbers.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return numbers[row]
}
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int){
subtractNumbers(\(numbers))
}
func subtractNumbers(number: Double) -> Double {
return number - 0.01
}
我已经研究了一下,我很确定我必须以某种方式对其进行格式化。 任何帮助表示赞赏。 请解释一下你的答案!
答案 0 :(得分:2)
问题在于以下功能:
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
{
return numbers[row]
}
String
中你的函数的返回类型,但是你返回Double
。
将其更改为:
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
{
return "\(numbers[row])";
}
以下代码中还有一个问题:
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
subtractNumbers(\(numbers))
}
您传递的是整个数组而不是选定的值。所以改变代码如:
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
subtractNumbers(numbers[row])
}
答案 1 :(得分:0)
这是将数字转换为字符串的方法。
var number = 1.0
var string = "\(number)"