【发布时间】:2015-04-27 11:44:31
【问题描述】:
我正在尝试转换 NSDateFormater Int,但变量返回 nil。 这是我正在使用的代码:
var datePeriodBegin:NSDate = NSDate()
if(NSUserDefaults.standardUserDefaults().objectForKey("datePeriodBegin") != nil){
datePeriodBegin = (NSUserDefaults.standardUserDefaults().objectForKey("datePeriodBegin")! as? NSDate)!
}
let datePeriodEnd = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.CalendarUnitMonth, value: 6, toDate: datePeriodBegin, options: nil)!
var dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd000000"
var start:Int = dateFormatter.stringFromDate(datePeriodBegin).toInt()!
var end:Int = dateFormatter.stringFromDate(datePeriodEnd).toInt()!
println(start) // return nil in iPhone 4S -> iPhone 5s
【问题讨论】:
-
当你只在设备上运行它时它返回
nil?因为我刚刚将它粘贴到 Playground 中,并且 它可以工作。 -
还可以确认它对我有用,就像在操场上写的那样。
-
如果平台使用 32 位 Int,您的代码是不安全的,因为您要超过
Int32.max。无论如何,以另一种方式进行计算可能会更安全。也许使用明确的日期组件和 64 位 Int。