2015-01-12 57 views
-5

我正在嘗試製作一個簡單的時鐘應用程序,但我遇到了問題。()不能轉換爲字符串

@IBAction func toggle(sender: UISwitch) { 

    func formatADate() { 
     var dateFormatter = NSDateFormatter() 
     dateFormatter.dateStyle = .ShortStyle 
     dateFormatter.dateFormat = "hh:mm:ss a" 
     let date = NSDate() 
     let output = dateFormatter.stringFromDate(date) 
     println(output) 
    } 

    let clockString: String = formatADate() 

    clockFace.hidden = false 
    clockFace.text = clockString 
} 

但是我不斷收到錯誤() is not convertible to String。任何想法爲什麼發生這種情況?

回答

5

formatADate函數聲明爲不接受參數和返回void(即沒有),而在這條線

let clockString: String = formatADate() 

你是一個字符串指定其返回值(無效)。

你只需要聲明功能返回一個字符串:

func formatADate() -> String { 
     var dateFormatter = NSDateFormatter() 
     dateFormatter.dateStyle = .ShortStyle 
     dateFormatter.dateFormat = "hh:mm:ss a" 
     let date = NSDate() 
     let output = dateFormatter.stringFromDate(date) 
     println(output) 

     return output    
    } 

我正在做的假設,output是你想要它返回的東西 - 如果不是,相應地改變。

3

formatADate功能應該被定義爲返回String

func formatADate()-> String { // use -> to show returned type 
    var dateFormatter = NSDateFormatter() 
    dateFormatter.dateStyle = .ShortStyle 
    dateFormatter.dateFormat = "hh:mm:ss a" 
    let date = NSDate() 
    let output = dateFormatter.stringFromDate(date) 
    return output // return string type 
} 

let clockString: String = formatADate()