Swift中的Category-Extension

当我们在用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)

原文链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 1.首先 需要在info.Plist 文件中设置 将View controller-based statu...
    SHRookie阅读 1,147评论 0 0
  • "你怎么这么瘦呀?”“你为什么狂吃不胖呢?”“真羡慕你不需要减肥哦!” 没错,我是个瘦子。我属于不易胖体质。体重是...
    千瑾陌阅读 632评论 0 0
  • 明天就要高考了,又有一批学子即将迎来新的人生。 每每到这时,微博上就会转起对高三学生们的美好祝愿。 我也希望,他们...
    没有龟壳的蜗牛阅读 135评论 0 0
  • 咏秋两题 (一)“秋”字趣解 成熟以其独有的魅力 挽着热情 走出一个季节 (二)秋香 秋将情节精心提炼 把花香给了...
    一了0820阅读 223评论 0 1