Swift单例模式 - Singleton

1.单例如下

    class LibraryAPI {

     var name:String?
     static let  instance = LibraryAPI()
     var height:Double?

    }

这里static这个静态常量,只会被创建一次,而且在需要的时候才会被创建

2.验证


override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

      let apiSingle  = LibraryAPI.instance
        apiSingle.name = "笑话"
        apiSingle.height = 1.65

          print(apiSingle.name!)

       let button = UIButton.init(type: .Custom)
        button.frame = CGRectMake(100, 109, 100, 50)
        button.tag = 2222;
        view.addSubview(button)
        button.backgroundColor = UIColor.redColor()
        button .addTarget(self, action:#selector(ViewController.clickButton(_:)) , forControlEvents: .TouchUpInside)

    }


    func clickButton(sender:UIButton){

        let  api = LibraryAPI.instance
        print(sender.tag)
       if let name = api.name
       {
        print(name)
        }

      print(api.height)
    }

控制台输出:

笑话
2222
笑话
Optional(1.6499999999999999)

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 3.1 OC特性之 内存五大区域 此篇为针对Objective-c语言入门的基础知识,为了能让大家更清楚的理解,此...
    阿新_会飞的猴子阅读 1,781评论 3 10
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,019评论 0 3
  • Docker私有仓库的搭建 修改服务器192.168.220.139服务器 vim /etc/sysconfig/...
    无言大叔阅读 552评论 0 1