1. 常见的类型转化符号
1.1 is
: 用于判断一个实例是否是某一种类型**
// 1.定义数组
let array : [AnyObject] = [20, "cdh", 1.88]
// 2.取出数组中的第一个元素
let objc = array.first!
// 3.判断第一个元素是否是一个Int类型
if objc is Int {
print("是Int类型")
} else {
print("非Int类型")
}
1.2 as?
和 as!
的使用
-
- 1.将NSObject转成具体的类型
- 2.as? 将NSObject转成一个可选类型(掌握)
- 3.as! 将NSObject转成一个具体的类型(注意:如果转化不成功,程序会崩溃)
// 4.将objc转成真正的类型来使用
// 4.1.as? 将AnyObject转成可选类型,通过判断可选类型是否有值,来决定是否转化成功了
let age = objc as? Int
print(age) // 结果:Optional(12)
// 4.2.as! 将AnyObject转成具体的类型,但是注意:如果不是该类型,那么程序会崩溃
let age1 = objc as! Int
print(age1) // 结果:12
// 2.1 定义字典
let infoDict = ["name" : "CDH", "age" : 18 , "height" : 1.88]
let name = infoDict["name"]
if let name = name {
// 将 NSobject 转为 String 的可选类型
let name = name as? String
// 使用name
if let name = name {
print(name.characters.count)
}
}
// 简单写法一:
if let name = infoDict["name"]{
if let name = name as? String{
print(name.characters.count)
}
}
// 简单写法二:
if let name = infoDict["name"] as? String{
print(name.characters.count)
}