单例

***************

单例:只能实例化出一个对象的类

是常用的设计模式之一

整个应用程序的生命周期中只实例化一次

生命周期:对象只有程序退出时才会销毁

使用场合:某一个对象会被频繁的创建销毁, 数据共享

固定写法:

① 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, ^{

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值