首页 技术 正文
技术 2022年11月13日
0 收藏 732 点赞 2,840 浏览 592 个字

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

 

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

不使用GCD

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

#import "ServiceManager.h"static ServiceManager *defaultManager;@implementation ServiceManager+(ServiceManager *)defaultManager{
if(!defaultManager)
defaultManager=[[self allocWithZone:NULL] init];
return defaultManager;
}@end

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

使用GCD

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

#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

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

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,497
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298