可选类型的应用
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)
}
let path = NSBundle.mainBundle().pathForResource("info.plist" ,ofType:nil)
if let path = path {
NSArray(contentsOfFile:path)
}