升级到1.2之后,我有编译错误:
NSDate?! is not convertible to NSDate代码:
let dateCreated = photoCommentObjects[indexPath.row].createdAt as NSDate其他企图:
我也试过:
let dateCreated = photoCommentObjects[indexPath.row].createdAt as? NSDate我得到了错误:
Downcast from NSDate?! to 'NSDate' only unwraps optionals发布于 2015-05-09 11:37:21
显然,photoCommentObjects[indexPath.row].createdAt正在返回一种NSDate?!类型,它是一个可选选项的隐式包装可选。若要将其解封,首先将结果强制转换为NSDate?和as,以删除隐式包装的可选选项,然后使用可选绑定来解包装结果的NSDate?。
if let dateCreated = photoCommentObjects[indexPath.row].createdAt as NSDate? {
// use dateCreated which is of type NSDate
}其结果是dateCreated将是一个普通的NSDate。
或者,您可以使用:
if let temp = photoCommentObjects[indexPath.row].createdAt, dateCreated = temp {
// each assignment unwraps one layer of Optional
// use dateCreated which is of type NSDate
} else {
println("something is nil")
}发布于 2015-05-09 10:33:44
这是一个类型问题。您有一个具有AnyObject类型的数组,并且无法读取AnyObject上的属性。
//sample data
class PhotoComment {
let createdAt = NSDate()
}
let photoCommentObjects: [AnyObject] = [PhotoComment()]//let's get the indexed object first and let's cast it from AnyObject
let photoComment = photoCommentObjects[indexPath.row] as! PhotoComment
//now trivially
let dateCreated = photoComment.createdAt或
//let's cast the whole array first
let photoComments = photoCommentObjects as! [PhotoComment]
let dateCreated = photoComments[indexPath.row].createdAt发布于 2015-05-09 10:58:42
你试过吗?
let dateCreated = photoCommentObjects[indexPath.row].createdAt as! NSDate从SIFT1.2开始,您必须使用!显式标记强制转换。这提醒您,如果失败,您的应用程序将崩溃。
https://stackoverflow.com/questions/30138832
复制相似问题