运用场景:

1. 有一个全局的实例化的类方法

2. 保存在静态区,单例的生命周期和应用程序一样长

3. 内存中有且只有一个副本/对象/实例,指保存一份

用法:

1.GCD实现单利

+ (instancetype)sharedInstance {

static InstanceClass *_shareInstance = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_shareInstance = [[super allocWithZone:NULL] init];

});

return _shareInstance;

}

2.静态变量实现单利

+ (instancetype)sharedInstance {

static InstanceClass *_shareInstance = nil;

@synchronized (self) {

if (!_shareInstance) {

_shareInstance = [[super allocWithZone:NULL] init];

}

}

return _shareInstance;

}

3.

+ (instancetype)sharedInstance {

static InstanceClass *_shareInstance = nil;

if (!_shareInstance) {

_shareInstance = [[super allocWithZone:NULL] init];

}

return _shareInstance;

}

上面方法和这个是对应的

+ (instancetype)allocWithZone:(struct _NSZone *)zone {

return  [self sharedInstance];

}

iOS巅峰之单利用法相关推荐

  1. IOS中NSUserDefaults的用法

    2019独角兽企业重金招聘Python工程师标准>>> IOS中NSUserDefaults的用法(轻量级本地数据存储) 分类: IOS开发 Object-C编程语言2012-09- ...

  2. iOS巅峰之开发过程中的小知识点大全

    一.调用代码使APP进入后台,达到点击Home键的效果.(私有API) [[UIApplication sharedApplication] performSelector:@selector(sus ...

  3. iOS开发宝典:String用法大全

    本文转载至 http://mobile.51cto.com/iphone-395171.htm 新手们还在等什么?这是一本属于你的iOS开发"字典",在这里你可以查到字符串.数组. ...

  4. iOS开发 Block的用法

    一:在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行.Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:b ...

  5. IOS中NSUserDefaults的用法(轻量级本地数据存储)

    NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefa ...

  6. iOS开发 ☞ Cornerstone (SVN)用法详解

    一.SVN地址变更,无法查看新日志 报错: could not contact repository to read the latest log entries 解决方法:打开终端,输入:defau ...

  7. ios中图层的用法(1)

    uiview画圆角 - (void)layerMyView {// 圆角self.myview.layer.cornerRadius = 10;// 边框self.myview.layer.borde ...

  8. iOS巅峰之已经上架App在appStore上搜索不到的解决方案

    前一阵出现了app在appStore上突然搜索不到的情况,经过查询ASO100发现被清词了. 经过艰苦卓绝的工作, 今天终于解决了, 特来修书一封. 给大陆客服打. 解决不了. 美国客服打 0: 是否 ...

  9. IOS CoreText.framework --- 基本用法

    API接口文档. https://developer.apple.com/library/mac/#documentation/Carbon/Reference/CoreText_Framework_ ...

最新文章

  1. 数据结构:堆(Heap)
  2. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...
  3. 服务器负载信息失败,网络故障分析案例:负载均衡系统造成网络业务访问失败...
  4. harmonyos 2.0怎么升级,HarmonyOS 2.0正式发布 分布式能力获得全面升级
  5. Flink 流式计算在节省资源方面的简单分析
  6. ajax 赋值return
  7. MyBatis JdbcType介绍
  8. 数字后端基本概念介绍<IO Cluster>
  9. linux 微信机器人,开源Linux操作系统的机器人(组图)
  10. 入职薪酬谈判技巧_如何谈判你的薪水
  11. 发生在我们身边的灵异事件 - 发生在台湾奇萊山的一些灵异事件
  12. BUUCTF [0CTF 2016] piapiapia
  13. Python 李查逊/Richardson加速外推法
  14. 那些年,我们用过的地图下载器
  15. Cisco Packet Tracer(对cisco模拟器的初识+路由基本配置)
  16. 火狐浏览器和IE的CSS区别
  17. 英语6级词汇量【原创】
  18. 《C#零基础入门之百识百例》(九十一)预处理器指令 -- 代码示例
  19. [JS]JS模拟Alert弹出框效果--自定义CSS样式
  20. 用计算机如何使用减法,excel减法函数怎么用使用教程

热门文章

  1. GEE数据集——MOD13Q1.061 大地植被指数 16天 全球250m
  2. Ubuntu 解决向日葵切换账号以后黑屏的问题
  3. 黑龙江救学生截肢女教师增选为省残联副主席-最美女教师-张丽莉-残联副主席
  4. Web安全攻防之XSS平台搭建
  5. 计算机多媒体技术在会计,多媒体技术对会计教学的影响与作用
  6. C语言之判断素数与再见敲K
  7. 火狐插件火狐黑客插件将Firefox变成黑客工具的七个插件
  8. AB实验原理及案例实例(python代码实现)
  9. vue框架中使用iframe内嵌网页,并且双击实现网页全屏放大
  10. CSS中的宽高自适应以及最小最大宽/高