博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发笔记-两种单例模式的写法
阅读量:6503 次
发布时间:2019-06-24

本文共 692 字,大约阅读时间需要 2 分钟。

 

单例模式是开发中最常用的写法之一,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语句,它可以保证整个应用程序生命周期中某段代码只被执行一次!更安全。。。。

转载于:https://www.cnblogs.com/OIMM/p/4894167.html

你可能感兴趣的文章
PHP-权限控制类(转)
查看>>
CSS3秘笈第三版涵盖HTML5学习笔记9~12章
查看>>
bzoj1044木棍分割
查看>>
leetcode-136-Single Number
查看>>
微信小程序笔记<五> 页面管理及生命周期(route)——getCurrentPages()
查看>>
http服务器小项目
查看>>
JS案例:Jq中的fadeOut和fadeIn实现简单轮播(没完善,简单实现)
查看>>
一些数学上的名词及操作
查看>>
C# DataGridVie利用model特性动态加载列
查看>>
IPv6 地址分类
查看>>
<%@ include %>指令和<jsp:include>区别
查看>>
因为文件组 'PRIMARY' 已满 解决办法
查看>>
Flume 读取实时更新的日志文件
查看>>
HDU 2049
查看>>
《Spring1之第十次站立会议》
查看>>
Unity Shader 噪声消融特效 - 剑灵死亡特效
查看>>
Eclipse 自动生成 Ant的Build.xml 配置文件
查看>>
添加一条信息到列表,如果重复就替换,
查看>>
C#基础第五天
查看>>
MEF 编程指南(六):导出和元数据
查看>>