Swift单例模式|Swift单例模式 - Singleton
1.单例如下
class LibraryAPI {var name:String?
static letinstance = 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.65print(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){letapi = LibraryAPI.instance
print(sender.tag)
if let name = api.name
{
print(name)
}print(api.height)
}
控制台输出:
【Swift单例模式|Swift单例模式 - Singleton】笑话
2222
笑话
Optional(1.6499999999999999)
推荐阅读
- Swift中willSet和didSet的简述
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 设计模式-代理模式-Proxy
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- Swift|Swift ----viewController 中addChildViewController