var name : Optional<String>
var name : String? = nil
//赋值
name = "why"
//取值
print(name)
//强制解包,非常危险
print(name!)
//判断
if name != nil{
print(name!)
}
//可选绑定
if let name = name{
print(name)
}
应用场景
1.将字符串类型转成Int类型
问题:任何字符串都可以转成Int类型吗?
result是Int类型吗?
不一定能转成功,result可能是nil.可能是Int
所以result是Int?可选类型
不指定,根据类型推导就是Int?
let str = "123"
let result = Int(str)
2.根据一个字符串创建一个NSURL
NSURL先写一个(,会出现系统提示
任何一个字符串都可以创建一个NSURL吗?
当字符串里有中文的时候,NSURL(string:)可能为nil
所以url就是可选类型 NSURL?
let urlString = "http://www.baidu.com"
let url : NSURL? = NSURL(string :urlString)
if let url = url{
let request = NSURLRequest(URL :url)
}
3.根据一个文件名称,获取文件的路径
路径可能读取不到,所以也要用可选类型
let path = NSBundle.mainBundle().pathForResource("info.plist" ,ofType:nil)
if let path = path {
NSArray(contentsOfFile:path)
}