美文网首页
协议扩展

协议扩展

作者: FengxinLi | 来源:发表于2016-10-27 10:54 被阅读15次

协议扩展

在Swift 1.0 时代,协议(Protocol)基本上类似一个接口,定义若干属性和方法,供类、结构体、枚举遵循和实现。在Swift 2.0中,可以对协议进行属性或者方法的扩展,和扩展类与结构体类似。这让我们开启了面向协议编程的篇章。

Swift中,大多数基础对象都遵循了CustomStringConvertible协议,比如Array、Dictionary(Swift 1.0中的Printable协议),该协议定义了description方法,用于print方法打印对象。现在我们对该协议扩展一个方法,让其打印出大写的内容:

extension  CustomStringConvertible{

var  upperDescription:String{

return"\(self.description.uppercased())"

}

}

var  arr = ["hello","word"]

print(arr.description);

print(arr.upperDescription)

如果在Swfit 1.0时代,要想达到上述示例的效果,那么我们需要分别对Array、Dictionary进行扩展,所以协议的扩展极大的提高了我们的编程效率,也同样使代码更简洁和易读。

在swift更高版本里面uppercaseString 大写 字符串大写变成了uppercased() 方法了

相关文章

  • swift 4.0 协议 协议扩展

    协议 协议扩展

  • swift 扩展和协议的结合

    协议和扩展是可以结合使用的,可以通过扩展使已有的类型采纳某个协议,也可以对现有协议进行扩展。 一、通过扩展采纳协议...

  • POP-面向协议编程

    什么是面向协议编程? 面向协议 = 协议 + 扩展 + 继承通过协议、扩展做功能划分,降低模块间的耦合,增强代码的...

  • swift中protocol的extension中使用#sele

    协议扩展 不能在上面这样的协议扩展中直接使用#selector,协议扩展对于OC是看不见的。 其中有个报错: @o...

  • Swift 命名空间形式扩展的理解和问题探讨

    先从 Swift 协议扩展的语法说起 注:协议扩展 Protocol extension: Swift 1.x 中...

  • 扩展,协议

    扩展 扩展类似oc里面的category,用来为已存在的类提供额外功能。 extension可以访问类的所有成员,...

  • 协议扩展

    协议扩展 在Swift 1.0 时代,协议(Protocol)基本上类似一个接口,定义若干属性和方法,供类、结构体...

  • 协议扩展

    extension 扩展为现有的类、结构体、枚举类型、协议添加了新功能。这也包括了为无访问权限的源代码扩展类型的能...

  • Swift 语言简单介绍(二)

    本片文字主要介绍: 结构体 类 协议 扩展 闭包 结构体 类 协议 扩展 枚举 闭包

  • swift 协议的可选方法

    在协议中定义方法 扩展协议,在扩展协议中给出默认实现 如果代理实现了此方法,会覆盖默认实现 public prot...

网友评论

      本文标题:协议扩展

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