iOS单例
2016-02-14 15:56
323 查看
2016年02月14日15:41:15
刚接触单例,理解不是很深刻,先把常用的宏定义存到这块,以便后用。
我学习的李明杰老师的视频是创建一个头文件,在这个头文件里面将格式化的代码定义成宏,这样方便将用到的时候直接用宏来实现单例。
- 宏如下
示例演示。
讲一个person的类变成单例模式。
发现一篇比较好的文章,留以备后用。
刚接触单例,理解不是很深刻,先把常用的宏定义存到这块,以便后用。
我学习的李明杰老师的视频是创建一个头文件,在这个头文件里面将格式化的代码定义成宏,这样方便将用到的时候直接用宏来实现单例。
- 宏如下
// .h文件 #define XMGSingletonH(name) + (instancetype)shared##name; // .m文件 #define XMGSingletonM(name) \ static id _instance; \ \ + (instancetype)allocWithZone:(struct _NSZone *)zone \ { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instance = [super allocWithZone:zone]; \ }); \ return _instance; \ } \ \ + (instancetype)shared##name \ { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instance = [[self alloc] init]; \ }); \ return _instance; \ } \ \ - (id)copyWithZone:(NSZone *)zone \ { \ return _instance; \ }
示例演示。
讲一个person的类变成单例模式。
//person.h 文件
#import <Foundation/Foundation.h>
#import "singleton.h"//包含宏的头文件
@interface person : NSObject
XMGSingletonH(person)
@end
//person.m #import "person.h" @interface person() @end @implementation person XMGSingletonM(person) @end //这样就完成了person这个类的单例化。
发现一篇比较好的文章,留以备后用。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 设计模式之创建型模式 - 特别的变量问题
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#单例模式(Singleton Pattern)实例教程
- php设计模式之单例、多例设计模式的应用分析
- javascript 单例/单体模式(Singleton)
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- C++单例模式应用实例
- Android、iOS和Windows Phone中的推送技术详解