首页 > 代码库 > swift中的类拓展 extension

swift中的类拓展 extension

以添加颜色为例,new 一个swift文件夹 不是cocoa类 也不需要继承什么。

然后

 1 import UIKit 2  3 protocol ColorDalegate{ 4     class func mainColor(Void) -> UIColor 5 } 6  7 extension UIColor: ColorDalegate{ 8     class func mainColor(Void) ->UIColor{ 9        return  UIColor.redColor()10     }11 }

这里定义一个ColorDalegate的协议,然后由UIColor去实现这个协议里声明的方法,这里说一下这么写的原因,就是为什么要加那个class,

如果调用系统的redColo()的方式是UIColor.redColor()  查看redColor的声明就到了这个界面,下面是部分截取

 1  class func blackColor() -> UIColor // 0.0 white  2     class func darkGrayColor() -> UIColor // 0.333 white  3     class func lightGrayColor() -> UIColor // 0.667 white  4     class func whiteColor() -> UIColor // 1.0 white  5     class func grayColor() -> UIColor // 0.5 white  6     class func redColor() -> UIColor // 1.0, 0.0, 0.0 RGB  7     class func greenColor() -> UIColor // 0.0, 1.0, 0.0 RGB  8     class func blueColor() -> UIColor // 0.0, 0.0, 1.0 RGB  9     class func cyanColor() -> UIColor // 0.0, 1.0, 1.0 RGB 10     class func yellowColor() -> UIColor // 1.0, 1.0, 0.0 RGB 11     class func magentaColor() -> UIColor // 1.0, 0.0, 1.0 RGB 

这里对每一个都加了class,虽然不知道为什么,但是像这类东西只需要模仿系统的写就可以了,这绝对是正确的。

swift中的类拓展 extension