多线程学习12-GCD实现单例模式
来源:互联网 发布:公务员 知乎 编辑:程序博客网 时间:2024/06/09 15:44
学习多线程12(之前跟着小码哥视频学习了多线程,准备把学到的东西放到网上,便于参考。仅有视频,所以所有文字都是自己打的,同时也温习一下多线程)
单例模式
单例模式的作用
可以保证在程序运行过程中,一个类只有一个实例,而且该实例易于供外界访问。
LMPerson.h
#import <Foundation/Foundation.h>@interface LMPerson : NSObject+(instancetype)shareInstance;@end
LMPerson.m
#import "LMPerson.h"@interface LMPerson()<NSCopying>@end@implementation LMPersonstatic id _instance;+(instancetype)allocWithZone:(struct _NSZone *)zone{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instance = [super allocWithZone:zone]; }); return _instance;}+(instancetype)shareInstance{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instance = [[self alloc]init]; }); return _instance;}-(id)copyWithZone:(NSZone *)zone{ return _instance;}@end博客原地址:http://blog.csdn.net/leemin_ios/article/details/51200068
也可以单独抽出来放在一个头文件中,每次使用只需要导入该头文件即可
#ifndef LMSingleton_h#define LMSingleton_h//.h文件#define LMSingletonH +(instancetype)shareInstance;//.m文件#define LMSingletonM \static id _instance;\+(instancetype)allocWithZone:(struct _NSZone *)zone\{\ static dispatch_once_t onceToken;\ dispatch_once(&onceToken, ^{\ _instance = [super allocWithZone:zone];\ });\ return _instance;\}\+(instancetype)shareInstance\{\ static dispatch_once_t onceToken;\ dispatch_once(&onceToken, ^{\ _instance = [[self alloc]init];\ });\ return _instance;\}\-(id)copyWithZone:(NSZone *)zone\{\ return _instance;\}#endif /* LMSingleton_h */
至此,关于多线程的基本知识点,已结束。
0 0
- 多线程学习12-GCD实现单例模式
- ios-UI高级多线程 GCD实现单例模式
- GCD实现单例模式
- gcd实现单例模式其一
- ios--GCD实现单例模式
- GCD---dispatch_once实现单例模式
- iOS--使用GCD实现单例模式
- 单例模式2-GCD实现单例模式
- ios开发单例模式——使用GCD实现单例模式 & 非ARC单例模式 &使用GCD和线程锁实现单例模式
- Objective-C利用GCD技术实现单例模式
- C++ 实现单例模式 多线程
- 多线程单例模式的安全实现
- 多线程下实现单例模式
- c++多线程单例模式实现
- 非ARC情况下---用GCD实现单例模式
- GCD高级用法(三) 多线程单例
- ios 多线程编程<六、GCD单例>
- iOS 开发 多线程详解之GCD应用延迟操作,单例设计模式,调度组
- 2016/04/17
- Bom,Dom
- webui78一个小巧高效灵活的web前端UI组件库,包括表格、树、表单验证、图片按钮、对话框、面板等组件
- ios面试题1
- WifiDog实际应用注意的问题
- 多线程学习12-GCD实现单例模式
- iOS UIStepper加减按钮
- 2016/04/19
- 数据库中获得当前系统时间戳,距离1970年1月1日秒数
- 2016/4/20
- 利用MAVEN打包时,如何包含更多的资源文件
- [LeetCode]Permutation全排列和去重全排列
- Ubuntu 12.04 / Linux Mint 17.1 下安装TinyOS-2.1.1全过程
- Object-C 协议