2014-12-28 23 views
-2

我正在学习该语言,并且正在尝试制作秒表和倒数计时器应用程序。 我已经做了所有的秒表,但倒数计时器给我麻烦。“字符串”与“Int8”不相同 - SWIFT

我有一个选取器视图来将标签设置为应从其倒数的位置。那是我遇到麻烦的地方。我似乎无法弄清楚如何让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   
} 

这是我对拾取器视图所拥有的。如果您需要查看更多代码来帮助我,请告诉我。 任何帮助表示赞赏。 谢谢。

+0

哪条线是给你的错误? –

+0

我编辑了原文。我添加了哪一行给出错误。 –

+1

'displayTime'已经是一个字符串,所以“ - ”没有多大意义。 (另外,'“\(numbers [row])”'与'numbers [row]'...两个字符串几乎相同。) –

回答

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" 
} 
+0

非常感谢。我是否将该代码块放入didSelectRow函数中? @PhillipMills –