SWIFT - ' double'不能转换为'字符串'

时间:2014-12-29 23:05:36

标签: ios xcode swift uipickerview

我正在学习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
}

我已经研究了一下,我很确定我必须以某种方式对其进行格式化。 任何帮助表示赞赏。 请解释一下你的答案!

2 个答案:

答案 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)"