可选类型的应用

可选类型的应用

  • 可选类型
    • 可选类型不赋值默认是nil
var name : Optional
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)
}

你可能感兴趣的:(可选类型的应用)