美文网首页
iOS单例(GCD)

iOS单例(GCD)

作者: 天蚕 | 来源:发表于2016-04-10 20:00 被阅读285次

今天用到音效播放,顺便把单例做下记录
很多单例都会文章都会实现copyWithZone:个人感觉不是很有必要(自定义的方法没有遵守NSCopying协议),我想不会有人给一个自定义对象发送copy消息吧,反正我不会,当然实现copyWithZone:也不会有什么问题,起码真的有人直接copy单例对象,不至于奔溃。所以个人建议还是保留吧,防患于未然吧。

#import "JLBAudioTool.h"

static id _audioTool;

@interface JLBAudioTool()

@end

@implementation JLBAudioTool

/**
 工具方法
 */
+ (instancetype)shareAudioTool
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _audioTool = [[self alloc] init];
    });
    return _audioTool;
}

/**
 alloc方法内部其实就是调用该方法
 */
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _audioTool = [super allocWithZone:zone];
    });
    return _audioTool;
}

/**
防止有人发送copy消息给单例对象
*/
- (id)copyWithZone:(NSZone *)zone
{
    return self;
}
@end

相关文章

  • ios~单例模式:

    在iOS OC中,一般我们都是用官方推荐的写法来写单例:GCD方式单例 分析单例 static SharedPer...

  • 单例模式和GCD单例实现

    1、传统单例模式2、GCD单例模式3、用宏实现GCD单例模式4、用宏实现GCD单例模式,名称随类名变化而变化 单例...

  • iOS单例(GCD)

    今天用到音效播放,顺便把单例做下记录很多单例都会文章都会实现copyWithZone:个人感觉不是很有必要(自定义...

  • iOS GCD单例

    建一个NSObject的类,类名叫foodShare。 .h中初始化单例:类方法 +(id)shareFood; ...

  • 单例

    普通的 GCD单例 swift单例

  • iOS 单例(singleton,GCD,@synchroniz

    iOS中单例模式的两种创建方法:GCD 和 @synchronize 1.GCD的方法 1.重写allocWith...

  • iOS 中的强单例和弱单例

    单例是什么以及作用就不单独解释了 强单例 iOS 中常见的单例模式有两种方式: 这也是到处都能查到的调用GCD 或...

  • iOS-两种单例模式的实现

    单例模式是开发中最常用的写法之一,创建一个单例很多办法,iOS的单例模式有两种官方写法,如下: 不使用GCD 某些...

  • iOS 单例计时器(页面切换仍然计时)

    iOS 单例计时器(页面切换仍然计时)NSTimer 定时器(2)GCD 多线程(4) //–––––––––––...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

网友评论

      本文标题:iOS单例(GCD)

      本文链接:https://www.haomeiwen.com/subject/umgblttx.html