Ios 无法强制转换类型为'__NSCFString';至';NSDate&x27,NSUserDefaults
您好,我正在尝试从NSUSerDefault获取日期,当我尝试将任何对象强制转换为NSDate时,出现以下错误:Ios 无法强制转换类型为'__NSCFString';至';NSDate&x27,NSUserDefaults,ios,iphone,swift,nsuserdefaults,Ios,Iphone,Swift,Nsuserdefaults,您好,我正在尝试从NSUSerDefault获取日期,当我尝试将任何对象强制转换为NSDate时,出现以下错误: Could not cast value of type '__NSCFString' (0x101d6bef0) to 'NSDate' 以下是完整的代码: if let some = brain.defaults.objectForKey("Today") { let demoo = NSDate().secondsFrom(some as! NSDate
Could not cast value of type '__NSCFString' (0x101d6bef0) to 'NSDate'
以下是完整的代码:
if let some = brain.defaults.objectForKey("Today") {
let demoo = NSDate().secondsFrom(some as! NSDate)
brain.numberCount = Float(demoo)
brain.defaults.synchronize()
brain.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
startButtonUIButton.hidden = true
brain.progressCircle.strokeEnd = CGFloat(demoo/86400)
}
erro在这条线上:
let demoo = NSDate().secondsFrom(some as! NSDate)
知道为什么吗?
一些
是NSString
,而不是NSDate
。您无法将NSString
轻松转换为NSDate
。您必须使用NSDateFormatter
,或者如果它是一个时间戳,您可以将其转换为NSTimerInterval
,然后转换为NSDate
@Larme,实际上是任何对象中的一个。我检查了几次。我正在寻找将任何对象转换为NSDate或将NSDate直接保存为NSUserDefault的方法。some
是一个NSString
存储为AnyObject
的some as!字符串
将起作用,一些作为?NSDate
将返回nil。您应该检查为“Today”设置默认值时是否设置了正确的值,或者如果您确实希望默认值中包含字符串,请使用NSDateFormatter
。