NSDateFormatter returns 无 swift 2
NSDateFormatter returns nil in swift 2
当我将字符串转换为 NSDate
时,它返回 nil
并显示错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
例如:日期 = 2016 年 8 月 9 日 9:45:19 上午
convertDate(DateString:String) -> NSDate{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy hh:mm:ss a"
let date = dateFormatter.dateFromString(DateString)
print(date) // return nil
return date!
}
各位大神指导一下是什么原因?
问题是你的 dateFormatter
无法转换你正在传递的 DateString
,鉴于你告诉它使用的 dateFormat
。
因此它放弃了 returns nil
,这意味着当你 运行 这一行时:
let date = dateFormatter.dateFromString(DateString)
date
的值为nil
接下来,您取 date
的值并说 "force unwrap this value and return it, I don't care if it is nil or not",如此处所示。
return date!
因为你的函数需要return一个NSDate
...意味着你保证你将总是 return一个实例NSDate
而不是 nil
,然后你告诉它强制解包某些东西(在这种情况下是)nil
当你尝试强制解包时,你的应用程序会崩溃 date
.
一般来说,强制展开 Swift 中的内容几乎总是一个坏主意,除非您绝对确定该值不是 nil
。
所以,有几件事需要考虑:
您的 DateString
实际看起来如何?该字符串或您的 dateFormat
字符串一定有问题,因为无法解析该值。
你应该总是return一个NSDate
吗?或者你可以 return 一个可选的而不是让你的方法的调用者担心你的 convertDate
方法 return 是否有用?
希望这能给你一些有用的东西。
当我将字符串转换为 NSDate
时,它返回 nil
并显示错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
例如:日期 = 2016 年 8 月 9 日 9:45:19 上午
convertDate(DateString:String) -> NSDate{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy hh:mm:ss a"
let date = dateFormatter.dateFromString(DateString)
print(date) // return nil
return date!
}
各位大神指导一下是什么原因?
问题是你的 dateFormatter
无法转换你正在传递的 DateString
,鉴于你告诉它使用的 dateFormat
。
因此它放弃了 returns nil
,这意味着当你 运行 这一行时:
let date = dateFormatter.dateFromString(DateString)
date
的值为nil
接下来,您取 date
的值并说 "force unwrap this value and return it, I don't care if it is nil or not",如此处所示。
return date!
因为你的函数需要return一个NSDate
...意味着你保证你将总是 return一个实例NSDate
而不是 nil
,然后你告诉它强制解包某些东西(在这种情况下是)nil
当你尝试强制解包时,你的应用程序会崩溃 date
.
一般来说,强制展开 Swift 中的内容几乎总是一个坏主意,除非您绝对确定该值不是 nil
。
所以,有几件事需要考虑:
您的
DateString
实际看起来如何?该字符串或您的dateFormat
字符串一定有问题,因为无法解析该值。你应该总是return一个
NSDate
吗?或者你可以 return 一个可选的而不是让你的方法的调用者担心你的convertDate
方法 return 是否有用?
希望这能给你一些有用的东西。