zoukankan      html  css  js  c++  java
  • 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,虽然不知道为什么,但是像这类东西只需要模仿系统的写就可以了,这绝对是正确的。

  • 相关阅读:
    入门学习嵌入式260期手把手配套视频7个项目实战送书
    使用from 的setTimeOut方法实现定时关闭Form
    C#面试题
    《JS语法字典》网友总结
    简单SQL语句小结
    面试前的简历
    Hello World的17种写法(C#)(转贴)
    张芸京 偏爱
    关于我对.setTmp()的理解及应用
    VS 2005使用技巧
  • 原文地址:https://www.cnblogs.com/chaiwentao/p/4029218.html
Copyright © 2011-2022 走看看