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项目的单例模式相关推荐

  1. IOS swift项目的单例模式.swift5以后的单例模式

    IOS swift项目的单例模式.swift5以后的单例模式 不能继承NSObject 第一种写法,最简单 class SoundTools{static let sharedInstance = S ...

  2. IOS的OC项目下回调函数的定义以及传参

    IOS的OC项目下回调函数的定义以及传参 1.首先定义一个类方法,通过类名打点调,没有返回值的, +(void) 2. 起个函数名字 +(void)headLineWithSuccess , head ...

  3. iOS 中 OC项目使用swift第三方工具(OC、swift 混合)

    OC项目引入swift, 1.建立 bridge 文件:在OC工程中新建swift文件,确认创建时,会提示建立 一个 项目名-bridging-header.h 文件. 2,建立 bridge 文件之 ...

  4. iOS - OC 面向对象语法

    1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...

  5. 将React Native 集成进现有OC项目中(过程记录) 、jsCodeLocation 生成方式总结

    将RN集成到现有OC项目应该是最常见的,特别是已经有OC项目的,不太可能会去专门搞个纯RN的项目.又因为RN不同版本,引用的依赖可能不尽相同,所以特别说明下,本文参考的文档是React Native ...

  6. GitHub 上都有哪些值得关注学习的 iOS 开源项目?

    GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...

  7. ios小项目——新浪微博客户端总结

    2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...

  8. iOS开源项目周报0420

    由OpenDigg 出品的iOS开源项目周报第十七期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. YetAno ...

  9. 直接拿来用!最火的iOS开源项目

    摘要:iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7,有的项目已被弃用,有的则继续发扬光大,新项目更是层出不穷.在本文中,我们将继续为大家介绍20个在GitHub ...

最新文章

  1. MySQL查询本周、上周、本月、上个月份数据的sql代码
  2. mysql 中文乱码 或 问号
  3. sql 插入text字段包含特殊字符_Kettle(PDI)转换中输出之插入/更新详解
  4. 服务器部署docker
  5. 职业生涯中最致命的十二中想法
  6. 使用 show status 命令
  7. 超越Excel,这才是报表的正确打开方式,可惜90%的人都没用过
  8. 处理动态SQL语句的参数
  9. Android 实现计时器
  10. java获取结果集_Java-如何获取结果集上的列名
  11. Caffe学习系列(16):caffemodel可视化
  12. gradle错误 dependency.systemPath‘ for com.alibaba:jconsole:jar must specify an absolute path
  13. 【Django】(一)django的下载、安装、配置及创建项目等
  14. 泰坦尼克号-决策树模型
  15. U盘Windows PE 安装系统简易教程
  16. 如何用计算机弹黑人抬棺简谱,光遇黑人抬棺竖琴简谱 数字简谱简单弹奏教学...
  17. php序列化 与json_PHP中serializen()与json_encode()的性能差异
  18. NOI 1.5编程基础之循环控制_02:财务管理(编辑过程解)
  19. 解决 Git 报错:GitHub - failed to connect to github 443
  20. 让数据中台“飞“起来— Quick BI性能优化解决方案及实践

热门文章

  1. 星空主题设计理念_敏捷协调,智慧运营:金蝶云·星空的产品设计理念与应用实践...
  2. java jpasswordfield_JAVA中JPasswordField实现密码的确认
  3. 计算机组成原理指令译码,计算机组成原理实验报告指令译码器.docx
  4. hibernate版本_Myeclipse 2020.5 版本首发!支持 Java14
  5. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
  6. matlab arima模型定阶,ARIMA模型预测问题
  7. php编程 第一节,PHP第一节php简介_PHP
  8. oracle 触发器 select :new,帮忙看下这个oracle触发器,在select后面的where语句有有关问题,但不知道什么有关问题...
  9. 河北省内计算机对口学校有哪些专业,河北省对口单招有哪些高校
  10. linux mysql odbc驱动安装_mysql odb驱动_Mysql的odbc driver安装配置(Linux)