欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swift中的Category-Extension

程序员文章站 2024-03-17 22:08:34
...

当我们在用OC写APP的时候,如果想为现有的类添加方法又不想继承该类我们可能会想到创建一个Category来实现,那么我们的语言换成Swift如何解决这个问题?如何在Swift中创建Category
在Swift中并没有Category这样一个概念,但是你可以用Swift的Extensions来实现。

Swift中Extension与OC中Category的不同点:

  • 它们不用命名
  • 如果你想给一个存在的类型定义一个extension去添加新的方法,这个新的方法将应用于该类型的所有实例,即使它们在extension定义前被创建。
  • 综上,它们不仅仅在定义某个类里面起作用,它们应用于整个项目。

目前,Extension可以做的工作:

  • 添加computed propertiecomputed static properties
  • 定义实例方法和类型方法
  • 提供新的初始化方法
  • 定义和使用新的内嵌类型
  • 创建已存在protocolextension
    基本的生命语法如下:
extension SomeType {
    // new functionality to add to SomeType goes here
}

如何在你的项目中创建Extension文件

  • command + n,在弹出的对话框中选择Swift File
  • 文件名称命名为你想创建分类的类名+你自定义的名字(eg:UIImage+Cropping)

原文链接