IOS OC项目的单例模式
IOS OC项目的单例模式
采用GCD方式书写单例,苹果官方示例代码也是这样写的,并打印一下地址,看看比较new出来的对象的地址是否相同。
提供一个类方法,供外部访问方便。
@interface NetworkTools : NSObject
+(instancetype)sharedTools;
@end
#import “NetworkTools.h”
@implementation NetworkTools
- (instancetype)sharedTools{
static id instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}
@end
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSLog(@"%@",[NetworkTools sharedTools]);
}
2021-10-05 23:54:44.451499+0800 oc单例[8641:244332] <NetworkTools: 0x6000018503e0>
2021-10-05 23:54:44.944650+0800 oc单例[8641:244332] <NetworkTools: 0x6000018503e0>
2021-10-05 23:54:45.340435+0800 oc单例[8641:244332] <NetworkTools: 0x6000018503e0>
每次地址一样,证明单例没问题。
IOS OC项目的单例模式相关推荐
- IOS swift项目的单例模式.swift5以后的单例模式
IOS swift项目的单例模式.swift5以后的单例模式 不能继承NSObject 第一种写法,最简单 class SoundTools{static let sharedInstance = S ...
- IOS的OC项目下回调函数的定义以及传参
IOS的OC项目下回调函数的定义以及传参 1.首先定义一个类方法,通过类名打点调,没有返回值的, +(void) 2. 起个函数名字 +(void)headLineWithSuccess , head ...
- iOS 中 OC项目使用swift第三方工具(OC、swift 混合)
OC项目引入swift, 1.建立 bridge 文件:在OC工程中新建swift文件,确认创建时,会提示建立 一个 项目名-bridging-header.h 文件. 2,建立 bridge 文件之 ...
- iOS - OC 面向对象语法
1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...
- 将React Native 集成进现有OC项目中(过程记录) 、jsCodeLocation 生成方式总结
将RN集成到现有OC项目应该是最常见的,特别是已经有OC项目的,不太可能会去专门搞个纯RN的项目.又因为RN不同版本,引用的依赖可能不尽相同,所以特别说明下,本文参考的文档是React Native ...
- GitHub 上都有哪些值得关注学习的 iOS 开源项目?
GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...
- ios小项目——新浪微博客户端总结
2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...
- iOS开源项目周报0420
由OpenDigg 出品的iOS开源项目周报第十七期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. YetAno ...
- 直接拿来用!最火的iOS开源项目
摘要:iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7,有的项目已被弃用,有的则继续发扬光大,新项目更是层出不穷.在本文中,我们将继续为大家介绍20个在GitHub ...
最新文章
- MySQL查询本周、上周、本月、上个月份数据的sql代码
- mysql 中文乱码 或 问号
- sql 插入text字段包含特殊字符_Kettle(PDI)转换中输出之插入/更新详解
- 服务器部署docker
- 职业生涯中最致命的十二中想法
- 使用 show status 命令
- 超越Excel,这才是报表的正确打开方式,可惜90%的人都没用过
- 处理动态SQL语句的参数
- Android 实现计时器
- java获取结果集_Java-如何获取结果集上的列名
- Caffe学习系列(16):caffemodel可视化
- gradle错误 dependency.systemPath‘ for com.alibaba:jconsole:jar must specify an absolute path
- 【Django】(一)django的下载、安装、配置及创建项目等
- 泰坦尼克号-决策树模型
- U盘Windows PE 安装系统简易教程
- 如何用计算机弹黑人抬棺简谱,光遇黑人抬棺竖琴简谱 数字简谱简单弹奏教学...
- php序列化 与json_PHP中serializen()与json_encode()的性能差异
- NOI 1.5编程基础之循环控制_02:财务管理(编辑过程解)
- 解决 Git 报错:GitHub - failed to connect to github 443
- 让数据中台“飞“起来— Quick BI性能优化解决方案及实践
热门文章
- 星空主题设计理念_敏捷协调,智慧运营:金蝶云·星空的产品设计理念与应用实践...
- java jpasswordfield_JAVA中JPasswordField实现密码的确认
- 计算机组成原理指令译码,计算机组成原理实验报告指令译码器.docx
- hibernate版本_Myeclipse 2020.5 版本首发!支持 Java14
- navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
- matlab arima模型定阶,ARIMA模型预测问题
- php编程 第一节,PHP第一节php简介_PHP
- oracle 触发器 select :new,帮忙看下这个oracle触发器,在select后面的where语句有有关问题,但不知道什么有关问题...
- 河北省内计算机对口学校有哪些专业,河北省对口单招有哪些高校
- linux mysql odbc驱动安装_mysql odb驱动_Mysql的odbc driver安装配置(Linux)