Xcode7.2编写单例模式
2015-12-25 20:43
393 查看
单例模式最根本的问题就是要保证一个类只能生成一个对象(实例),不管类生成多少个对象,始终都返回一个对象给用户。
首先要控制类的alloc方法,我们就必须重写以下方法:
详细代码如下:
方法如下:
运行效果图:
可见打印的地址都是一样的,也就表明我们创建的对象不管多少个始终都是同一个,这就是单例对象。
如有错误,请各位大神提出,小弟会第一时间改进。
首先要控制类的alloc方法,我们就必须重写以下方法:
<span style="font-size:32px;">+(instancetype)allocWithZone:(struct _NSZone *)zone</span>
详细代码如下:
<span style="font-size:32px;">+(instancetype)allocWithZone:(struct _NSZone *)zone { @synchronized(self) { if (singlton == nil) { @synchronized(singlton) { singlton = [super allocWithZone:zone]; } } } return singlton; }</span>重写完成后,给类提供一个单例方法:
<span style="font-size:32px;">+(instancetype)shareSingletons { return [[self alloc] init]; }</span>最后就是在使用单例对象的时候,导入头文件即可。
方法如下:
<span style="font-size:32px;">// Copyright © 2015年 bao. All rights reserved. // #import "ViewController.h" #import "Singletons.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; Singletons * s1 = [Singletons shareSingletons]; Singletons * s2 = [Singletons shareSingletons]; Singletons * s3 = [Singletons shareSingletons]; NSLog(@"1=%p 2=%p 3=%p", s1, s2, s3); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end</span><span style="font-size:32px;"> </span>不管创建了多少个单例(Singletons)类的对象,返回的都是同一个对象指针(地址).
运行效果图:
可见打印的地址都是一样的,也就表明我们创建的对象不管多少个始终都是同一个,这就是单例对象。
如有错误,请各位大神提出,小弟会第一时间改进。
相关文章推荐
- GUI - Web前端开发框架
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- 个人信息安全报告发布:有 APP 每分钟调用位置权限 1468 次
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- 下载量超过一亿的流行应用被发现含有恶意模块
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 苹果与Siri的七年之痒:“宫斗”戏码不断上演
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- APP添加CNZZ统计插件教程 Android版添加phonegap
- Cocos2d-x UI开发之文本类使用实例
- 谈谈对jquery ui tabs 的理解
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
- UI Events 用户界面事件
- jquery UI Datepicker时间控件的使用方法(基础版)
- 基于jQuery UI CSS Framework开发Widget的经验