多线程学习12-GCD实现单例模式
2016-04-20 14:51
176 查看
学习多线程12(之前跟着小码哥视频学习了多线程,准备把学到的东西放到网上,便于参考。仅有视频,所以所有文字都是自己打的,同时也温习一下多线程)
单例模式
单例模式的作用
可以保证在程序运行过程中,一个类只有一个实例,而且该实例易于供外界访问。
LMPerson.h
LMPerson.m
也可以单独抽出来放在一个头文件中,每次使用只需要导入该头文件即可
至此,关于多线程的基本知识点,已结束。
单例模式
单例模式的作用
可以保证在程序运行过程中,一个类只有一个实例,而且该实例易于供外界访问。
LMPerson.h
#import <Foundation/Foundation.h> @interface LMPerson : NSObject +(instancetype)shareInstance; @end
LMPerson.m
#import "LMPerson.h" @interface LMPerson()<NSCopying> @end @implementation LMPerson 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; } @end博客原地址:/article/11543095.html
也可以单独抽出来放在一个头文件中,每次使用只需要导入该头文件即可
#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 */
至此,关于多线程的基本知识点,已结束。
相关文章推荐
- vb.net 生成验证码图片-转载
- React-Router学习整理
- C# 列表排序函数
- 整理仿小米卸载动画打包成jar包直接使用(转载)
- 用Android Studio在windows下面查看android源码
- 软件测试适合谁做?
- 又见01背包
- powerdesigner中数据结构转化为excel文档
- _doPostBack简介
- js中运算符优先级问题
- 软件测试适合谁做?
- Android studio怎么创建shape的XML文件
- 移动浏览器采用app交互特性
- python插入记录cursor.lastrowid值为0的情况
- Objective-c #define 和 static const
- 三层架构(我的理解及详细分析)
- 避免代码冗余,使用接口和泛型重构Java代码
- 内存四区
- java 算法学习 --猴子吃桃
- 软件工程第一次冲刺进度条(1-10天)