swift - typealias详解

作者: 雨三楼 | 来源:发表于2016-05-17 15:00 被阅读2194次

    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<changeName,changeSex>
    
    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详解

        本文链接:https://www.haomeiwen.com/subject/ixwyrttx.html