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详解

    typealias 如果挑出swift中好用的功能,我认为typealias 应该是首当其冲的了typealias...

  • Swift - typealias

    typealias用来为已存在的类型重新定义名称的。 通过命名,可以使代码变得更加清晰。使用的语法也很简单,使用 ...

  • Swift 中类型别名的用途

    什么是 typealias? 当我们回忆那些 Swift 强大的语言特性时,很少有人会首先想到 typealias...

  • Swift: typealias、associatedtype

    typealias的用法: typealias是给现有的类型(包括系统和自定义的)进行重新命名,然后就可以用该别名...

  • Swift 2.1  typealias

    typealias是用来给已经存在的类型重新命名名字的,通过命名,我们可以写出更加清晰的代码。 typealias...

  • Swift typealias使用

    typealias 类型定义总结 给已有类型重新定义名称,方便代码阅读 定义闭包,类似oc的block 定义 闭包定义

  • Swift typealias 介绍

    typealias : 类型别名, alias 别名的意思

  • 1. swift 和OC 比较

    typealias 和 OC的typedef 2.Swift中的Any 与 AnyObject、AnyClass ...

  • swift学习

    * 闭包 * 闭包作为属性 ```swift // 声明闭包类型 typealias callba...

  • swift 简单的Time单例,延迟,循环,任你选

    swift 简单的Time单例,延迟,循环,任你选 import Foundation typealias ZZW...

网友评论

    本文标题:swift - typealias详解

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