文档章节

[一句秒懂]小马的单例

XJDomain
 XJDomain
发布于 2016/03/29 11:10
字数 195
阅读 64
收藏 0
//
//  YLSingleton.h
//  YangLand
//
//  Created by point on 16/3/1.
//  Copyright © 2016年 tshiny. All rights reserved.
//


// .h文件
#define YLSingletonH(name) + (instancetype)shared##name;

// .m文件
#define YLSingletonM(name) \
static id _instance; \
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [super allocWithZone:zone]; \
}); \
return _instance; \
} \
\
+ (instancetype)shared##name \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [[self alloc] init]; \
}); \
return _instance; \
} \
\
- (id)copyWithZone:(NSZone *)zone \
{ \
return _instance; \
}

   

  1. 直接创建一个header文件(只有.h文件的一个文件)

  2. 拷贝上面内容即可

  3. 使用很简单:在你使用的类中,.h中例如:YLSingletonH(你的类名)

    .m文件中:YLSingletonM(你的类名)

使用范例:

@interface YLUserInfo :BaseModel
YLSingletonH(YLUserInfo);

@end
@implementation YLUserInfo
YLSingletonM(YLUserInfo);

@end
 

普通单例写法对比:



.h文件:

+ (instancetype)sharedManager;


.m文件:

@implementation YUYUserInfo
+ (instancetype)sharedManager {
    static YUYUserInfo *sharedSingleton;
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedSingleton = [[YUYUserInfo alloc] init];
    });
    return sharedSingleton;
}
 

`这里输入代码`

© 著作权归作者所有

XJDomain
粉丝 15
博文 112
码字总数 44060
作品 0
嘉定
高级程序员
私信 提问
[一句秒懂]图片绘制成背景颜色

[一句秒懂]图片绘制成背景颜色 1:在我们view中实现这个方法即可: UIImage分类: 图片绘制涉及到图片拉伸,在我的图片拉伸中有提到: http://my.oschina.net/shengbingli/blog/673224...

XJDomain
2016/05/12
35
0
论单例模式内存释放

对于C++ 项目开发者来说,单例模式可以说是最常用的也是最有效的一种设计模式,无论是单线程中的懒汉模式还是线程安全的恶汉模式,亦或是其各个变种模式,都无法避免的是在使用完成后要对该单...

Jay_Guo
2017/11/26
0
0
单例的使用及避免对单例的滥用

1、首先说一下单例的使用 单例就是保证整个系统只有一个实例对象,并且自行实例化,向整个系统提供这个实例。 单例模式的出现为我们带来了很大的好处,我们可以将那些初始化比较耗费资源的操...

什么丿情况
2016/04/09
101
0
关于Python的Object继承

'''class x(object): if name == 'main': ''' 执行后得出:449920532844992053281 单例模式有效! 将第一行的class x(object): 改为class x: , 执行结果为 44670048404467004912None 单例模......

面码
2016/04/22
51
0
hashTable 和 hashMap 作缓存,实现的两种单例的区别

看过不同的源码,可还是不太懂下面两种数据结构实现的单例有什么区别: 不知道,使用 hashMap 和 hashTable ,在程序的使用上会有什么区别?? 个人认为,因为使用 synchronized 同步,感觉两...

静心天涯
2014/11/18
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
19分钟前
3
0
9.特殊权限 软连接 硬链接

6月7日任务 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 2.18 特殊权限set_uid 会发现有些文件的前三位并不是rwx而是rws,而s就代表...

oschina130111
31分钟前
2
0
好程序员web前端分享如何自学前端?步骤是什么?

好程序员web前端分享如何自学前端?步骤是什么?简单粗暴直接上学习流程。 1、学习HTML+CSS基础 HTML5新特性和CSS3 这个部分主要是需要记忆的知识点比较多,建议大家在学习的时候多加练习,最...

好程序员官方
32分钟前
3
0
创龙基于TI TMS320C6748定点/浮点DSP C674x + Xilinx Spartan-6 FPGA开发板

TL6748F-EVM是一款基于广州创龙SOM-TL6748F核心板设计的开发板,底板采用沉金无铅工艺2层板设计,它为用户提供了SOM-TL6748F核心板的测试平台,用于快速评估SOM-TL6748F核心板的整体性能。 ...

Tronlong创龙
37分钟前
2
0
8年前诞生于淘宝,细数阿里云RPA 的前世今生

9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任。公寓创业、西湖论剑、美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年。 阿里云RPA,201...

阿里云官方博客
42分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部