2017-05-15 45 views
1

我正在格式化正在传入的时间。我收到此错误,并试图弄清楚发生了什么在这里。我正在使用Xcode(v。8)的最新版本,并且正在使用Swift 3进行编程。这个错误意味着什么以及如何解决它?无法将类型'String'的值转换为期望的参数类型'TimeInterval'(又名'Double')

我在与问题相关的部分代码中拼接,因此它不是信息的重载。

var date: String { 
    if _date == nil { 
     _date = "" 
    } 
    return _date 
} 

init(weatherDict: Dictionary<String, AnyObject>){ 
    if let temp = weatherDict["temp"] as? Dictionary<String, AnyObject> 
    { 
     if let min = temp["min"] as? Double{ 
      self._lowTemp = ktof(kelvins: min) 
     } 

     if let max = temp["max"] as? Double{ 
      self._highTemp = ktof(kelvins: max) 
     } 
    } 

    let unixConvertedDate = Date(timeIntervalSince1970: date) 

    if let date = weatherDict["dt"] as? Double { 
     let unixConvertedDate = Date(timeIntervalSince1970: date) 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateStyle = .full 
     //dateFormatter.dateFormat = "EEEE" 
     dateFormatter.dateStyle = .none 
     self._date = unixConvertedDate.dayoftheWeek() 
    } 
} 

然后外面的类,其中所有上面的代码里面,我有这个。

extension Date { 
func dayoftheWeek() -> String { 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "EEEE" 
    return dateFormatter.string(from: self) 
    } 
} 
+0

删除多余的线'让unixConvertedDate =日期(timeIntervalSince1970:日期)'。你不需要两个'如果let'块之间的那个。 – rmaddy

+0

他也可以从init –

+0

中完全删除日期格式化程序为什么不简单'var date =“”' –

回答

0
  if let date = weatherDict["dt"] as? Double { 

      let unixConvertedDate = Date(timeIntervalSince1970: date) 
      let dateFormatter = DateFormatter() 
      dateFormatter.dateStyle = .full 
      dateFormatter.dateFormat = "EEEE" 
      dateFormatter.timeStyle = .long 
      self._date = "\(unixConvertedDate)" 
     } 

    } 

} 

extension Date { 
    func dayOfTheWeek() -> String { 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "EEEE" 
     return dateFormatter.string(from: self) 
    } 
} 
+1

请提供一些关于您的代码的解释。有关更多信息,请访问帮助中心:https://stackoverflow.com/help/how-to-answer – Schwesi

相关问题