无法将“String”类型的值转换为预期的参数类型“TimeInterval”(又名“Double”)
Posted
技术标签:
【中文标题】无法将“String”类型的值转换为预期的参数类型“TimeInterval”(又名“Double”)【英文标题】:Cannot convert value of type 'String' to expected argument type 'TimeInterval' (aka 'Double') 【发布时间】:2017-05-15 03:39:50 【问题描述】:我正在格式化传入的时间。我收到了这个错误,我正试图弄清楚这里发生了什么。我正在使用最新版本的 Xcode (v. 8) 并且正在使用 Swift 3 进行编程。这个错误意味着什么以及如何修复它?
我正在拼凑与问题相关的部分代码,因此这里的信息不会过多。
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)
【问题讨论】:
删除多余的行let unixConvertedDate = Date(timeIntervalSince1970: date)
。您不需要两个 if let
块之间的那个。
他还可以从init中完全删除日期格式化程序
顺便说一句,为什么不简单地var date = ""
【参考方案1】:
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)
【讨论】:
请在您的代码中提供一些解释。有关更多信息,请参阅帮助中心:***.com/help/how-to-answer以上是关于无法将“String”类型的值转换为预期的参数类型“TimeInterval”(又名“Double”)的主要内容,如果未能解决你的问题,请参考以下文章
“无法将 '(String) -> Bool' 类型的值转换为预期参数”
无法将 String 类型的值转换为预期的参数类型 NSManagedObject
无法将“String”类型的值转换为预期的参数类型“URLSession”
如何在此 for 循环中修复'无法将'String'类型的值转换为预期的参数类型'Int'
无法将“NSMutableDictionary”类型的值转换为预期的参数类型“[String: AnyObject]?”