单例
2016-02-19 09:27
190 查看
***************
单例:只能实例化出一个对象的类
是常用的设计模式之一
整个应用程序的生命周期中只实例化一次
生命周期:对象只有程序退出时才会销毁
使用场合:某一个对象会被频繁的创建销毁, 数据共享
固定写法:
① static WYXxx *wyXxx = nil;
+(WYXxx *)sharedWYXxx
{
if (nil)
{ 实例化 }
return xx;
}
全局变量 全局方法
①存值,全工程都能用
②封装常用方法 全工程的类都能用的方法
如何避免用alloc初始化:
+ (id)allocWithZone:(struct
_NSZone *)zone;
+ (id)alloc;
调用第二个方法 的时候 都会先自动调第一个方法
如何避免release等内存管理:
重写release等内存管理的方法
oneway的意思就是不能出现return
+ (WYHttpManager *)sharedManager
{
if (!manager) {
manager = [[WYHttpManager
alloc] init];
}
return manager;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
if (!manager) {
manager = [super allocWithZone:zone];
return manager;
}
return nil;
}
- (oneway void)release
{
}
- (instancetype)retain
{
return self;
}
- (instancetype)autorelease
{
return self;
}
**********************GCD的单例************************
dispatch_once_t
单例
static dispatch_once_t
onceToken;
dispatch_once(&onceToken,
^{
单例:只能实例化出一个对象的类
是常用的设计模式之一
整个应用程序的生命周期中只实例化一次
生命周期:对象只有程序退出时才会销毁
使用场合:某一个对象会被频繁的创建销毁, 数据共享
固定写法:
① static WYXxx *wyXxx = nil;
+(WYXxx *)sharedWYXxx
{
if (nil)
{ 实例化 }
return xx;
}
全局变量 全局方法
①存值,全工程都能用
②封装常用方法 全工程的类都能用的方法
如何避免用alloc初始化:
+ (id)allocWithZone:(struct
_NSZone *)zone;
+ (id)alloc;
调用第二个方法 的时候 都会先自动调第一个方法
如何避免release等内存管理:
重写release等内存管理的方法
oneway的意思就是不能出现return
+ (WYHttpManager *)sharedManager
{
if (!manager) {
manager = [[WYHttpManager
alloc] init];
}
return manager;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
if (!manager) {
manager = [super allocWithZone:zone];
return manager;
}
return nil;
}
- (oneway void)release
{
}
- (instancetype)retain
{
return self;
}
- (instancetype)autorelease
{
return self;
}
**********************GCD的单例************************
dispatch_once_t
单例
static dispatch_once_t
onceToken;
dispatch_once(&onceToken,
^{
相关文章推荐
- SDWebImage
- ASIHTTPRequest
- 同步下载与异步下载
- 中文编码问题
- 沙盒路径
- Json和Xml
- api 与html网址有什么不同
- ❤️初识cocoas 2D -x
- ♦️交换ab的两种方法
- ❤️命名空间
- ❤️C++的继承
- ❤️C++基础语法
- ❤️C++应用场景
- ❤️C++语言特点:
- Linux常用命令
- 0-1背包问题
- applepay 集成(转)
- Git -- 管理修改
- php 7.0 特性
- 设置php的环境变量 php: command not found