iOS开发笔记-两种单例模式的写法

iOS开发笔记-两种单例模式的写法

 

单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下:

不使用GCD

复制代码
复制代码
#import "ServiceManager.h"

static ServiceManager *defaultManager;

@implementation ServiceManager

+(ServiceManager *)defaultManager{
    if(!defaultManager)
        defaultManager=[[self allocWithZone:NULL] init];
    return  defaultManager;
}

@end
复制代码
复制代码

 

使用GCD

复制代码
复制代码
#import "ServiceManager.h"


@implementation ServiceManager


+(ServiceManager *)sharedManager{
    static dispatch_once_t predicate;
    static ServiceManager * sharedManager;
    dispatch_once(&predicate, ^{
        sharedManager=[[ServiceManager alloc] init];
    });
    return sharedManager;
}

@end
复制代码
复制代码

dispatch_once这个函数,这个函数不需要if语句,它可以保证整个应用程序生命周期中某段代码只被执行一次!更安全。。。。

posted @   OIMMZC  阅读(174)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
点击右上角即可分享
微信分享提示