'字符串'与' Int8'不完全相同 - SWIFT

时间:2014-12-28 17:15:04

标签: xcode swift uipickerview

我正在学习这门语言,我正在努力制作一个秒表和倒数计时器应用程序。 我为秒表做了一切,但倒数计时器给我带来了麻烦。

我有一个Picker View来将标签设置为它应该倒数的标签。那是我遇到麻烦的地方。我似乎无法弄清楚如何让NSTimer从用户从Picker View中选择的内容进行倒计时。

//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){

    var displayTime = "\(numbers[row])"
    timerDisplay.text = String(displayTime--) **LINE THAT GIVES ERROR**
    timeInMilliseconds -= 0.01        
}

这就是我对选择器视图的看法。如果您需要查看更多代码来帮助我,请告诉我们。 任何帮助表示赞赏。 谢谢。

1 个答案:

答案 0 :(得分:0)

如果要在文本中显示“.00”部分,则需要提取整数以进行算术运算。

类似的东西:

var text = ""
var whole: Int? = nil
if let index = numbers[row].rangeOfString(".") {
    whole = numbers[row].substringToIndex(index.startIndex).toInt()
}
if whole != nil {
    text = "\(whole! - 1).00"
}