初学者警报
我试图从PFUser查询日期,然后将其格式化为NSDate,因此它更有用。当我尝试将对象转换为NSString时,麻烦就开始了,所以我可以使用NSDateFormatter()格式化它
var user = PFUser.query()
user.whereKey("username", equalTo: PFUser.currentUser().username)
user.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
for object in objects {
var lastActive = object["lastActive"]
if lastActive != nil {
let newLastActive = lastActive as String //problem starts here!!
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.dateFromString(newLastActive)
println("new date \(date)")
}
}
}
}
这样做的正确方法是什么?此外,如果我没有将变量类型指定为AnyObject,它将作为可选项继续出现。如何在将其转换为String时删除可选项?
编辑:对象" lastActive"是由解析云设置的日期,而不是字符串。
答案 0 :(得分:3)
如果您的lastActive单元格返回您可以使用的日期:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.stringFromDate(lastActive as NSDate)
您不必将日期转换为字符串,您将通过dateformatter创建日期字符串。
但是,如果您这样做,可以使用lastActive as! String
lastActive as String
内容
<强>已更新强>
for object in objects {
var lastActive = object["lastActive"]
if lastActive != nil {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.stringFromDate(lastActive as NSDate)
println(date)
}
}
我尝试使用上面的代码,如果您已将列设置为解析日期,则应该可以正常工作。