swift - typealias详解

typealias

如果挑出swift中好用的功能,我认为typealias 应该是首当其冲的了
typealias:用来为已存在的类型重新定义名称的.
它的用法很广泛,理解起来也没有什么难度,所以在这我会列出几种typealias应用的场景,来达到熟悉它的目的. 能够在可以用到它的地方想到它,而不是在想到它的时候再用它~

  • 重新定义闭包类型
    • swift的闭包书写虽然好看了不少,但是如果大批量的书写闭包还是很累的而且还影响可读性和美观, 所以不妨试试typealias
    typealias DownSuccess = (json: NSURLResponse, filePath: String?) -> ()

这样我们在使用它的时候只需要:

func Post(url:String? , parameter:NSDictionary , success: DownSuccess)
  • protocol组合
    • protocol在swift中强大了不少,多种不同的protocol可以组合成一个然后用typealias重新命名
protocol changeName{
  func changeNameTo(name:String)
}
protocol changeSex{
  func changeSexTo(sex:SEX)
}
typealias changeProtocol = protocol

struct Persion:changeProtocol{
  func changeNameTo(name:String){
    ///
  }
  func changeSexTo(sex:SEX){
    ///
  }
} 
  • 基本类型
    • 这种用法在swift api中应用很广泛
public typealias AnyClass = AnyObject.Type
public typealias NSInteger = Int

  • 自定义类型
    • 在实际项目过程中,如果有OC和swift混编的情况,不免以后会对OC进行swift化,而OC和swift的命名系统相差很大,所以在重构之后不免要对整个项目进行 搜索-查找-替换 这是项非常耗时耗力的工作,而利用
      typealias 可以巧妙的规避这个问题
      举个栗子:
// OC中项目里有个类
#import "OCClass.h"

// swift重构之后
impot SwfitClass

typealias OCClass = SwfitClass

你可能感兴趣的:(swift - typealias详解)