您的位置:首页 > 移动开发 > Swift

对上一篇Swift中的as? 与 as!的补充

2016-01-13 17:50 363 查看
//AnyObject
相当于 id 类型
var myObject:AnyObject =
NSMutableDictionary()
myObject =
NSDate() //如果没有AnyObject会报错---每个变量在创建的时候类型就已确定

//as
强制转换
//这样写没有问题Date是一个可选类型
let date =
myObject as?
NSDate
print(date)
//Optional(2016-01-13 09:44:39 +0000)

//这样写没有问题Datee是一个强制拆包的可选类型
let datee =
myObject as!
NSDate
print(datee)
//2016-01-13 09:44:39 +0000

let futureDate = (myObject
as! NSDate).dateByAddingTimeInterval(-60)
print(futureDate)
//2016-01-13 09:44:54 +0000

//这样写是错误的,因为使用as?转换类型则代表为一个可选类型,而可选类型是不能直接操作的
//let futureDate = (myObject as? NSDate).dateByAddingTimeInterval(-60)
//print(futureDate)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: