2015-10-05 82 views
-2

我想要一個給出時間的函數。我的應用中已經有了一個時間標籤,可以顯示當前時間,並且每秒更新一次。但是我想要一個只保存按鈕按下時間的標籤。有多個按鈕可將當前時間存儲在不同的標籤中。如何通過函數傳遞字符串?

func fetchTime() -> String { 
    return NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: NSDateFormatterStyle.NoStyle, timeStyle: NSDateFormatterStyle.MediumStyle) 
    } 

@IBAction func clockIn(sender: AnyObject) { 
    testLabel = fetchTime() 

我得到的錯誤是「懸而未決標識的使用‘提取時間’

我有這方面的工作前一段時間,但我不小心刪除的應用程序... 我也試過

func fetchTime(label: String) -> String{ 
label.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: NSDateFormatterStyle.NoStyle, timeStyle: NSDateFormatterStyle.MediumStyle) 

} 

但失敗不好,我明白爲什麼,只是沒有如何正確地做到這一點。

enter image description here

回答

0

您要獲取的是一個字符串,應該將其指定爲標籤的文本值。

更新

testLabel = fetchTime() 

testlabel.text = fetchTime() 

按下按鈕時這會在每次更新標籤的值。

+0

「testlabel.text = fetchTime()」不起作用。 –

+0

這將根據你顯示的那個時間工作,只有一個功能,但現在你已經用照片更新了你的問題,我可以看到問題出現在語法上,在糾正語法後這會起作用。 –

+0

謝謝,祝您有美好的一天! –

1

這是你用盡全力工作版本

VERSION1

func fetchTime(label: UILabel){ 
    label.text = "its with parameter" 
} 

@IBAction func btnClicked(sender: UIButton) { 
    fetchTime(label) 
} 

而另一個...

func fetchTime() -> String { 
    return "without parameter" 
} 

@IBAction func btnClicked(sender: UIButton) { 
    lbl.text = fetchTime() 
} 
+0

這兩種解決方案都不適合我。就我個人而言,我有lbl.text = fetchTime(),我忘了在我的問題的代碼中輸入它,對不起!我用一張顯示我的代碼的圖片更新了這個問題,並且我得到'版本1'的錯誤 –

0

您發佈的照片​​是有幫助的。你已經在updateTime函數的範圍內聲明瞭fetchTime函數。你會注意到wrapTime花括號包含fetchTime。

因此,您無法在updateTime之外調用fetchTime。將fetchTime從updateTime移出,您就可以。這就是爲什麼你看到未定義的功能錯誤信息。

+1

謝謝先生!問題解決了! –