完整版单例代码
来源:互联网 发布:华中炒股软件 编辑:程序博客网 时间:2024/04/30 00:24
#if 0
+ (SingleCase *)sharedSingleCase
{
// 上锁
@synchronized(self){
if (singleCase == nil) {
// 几种单例写法
// singleCase = [[SingleCase alloc] init];
// singleCase = [SingleCase allocWithZone:<#(struct _NSZone *)#>;
// singleCase = [[self alloc] init];
// singleCase = [[self allocWithZone:NULL] init];
singleCase = [[super allocWithZone:NULL] init];
}
}
return singleCase;
}
#endif
// 有一种单例的写法
+ (SingleCase *)sharedSingleCase
{
static dispatch_once_t oneToken;
dispatch_once(&oneToken, ^{
singleCase = [[superallocWithZone:NULL]init];
});
returnsingleCase;
}
- (id)copyWithZone:(NSZone *)zone
{
return self;
}
- (id)mutableCopyWithZone:(NSZone *)zone
{
return self;
}
// 重写allocWithZone 防止别人alloc
+ (instancetype)allocWithZone:(struct_NSZone *)zone
{
return [SingleCasesharedSingleCase];
}
// 防止copy 返回的还是同一个对象
+ (id)copyWithZone:(struct_NSZone *)zone
{
return [SingleCasesharedSingleCase];
}
+ (id)mutableCopyWithZone:(struct_NSZone *)zone
{
return [SingleCasesharedSingleCase];
}
- (oneway void)release
{
}
- (instancetype)autorelease
{
return self;
}
- (instancetype)retain
{
return self;
}
- (NSUInteger)retainCount
{
// 很大的一个数 release消息并没有什么卵用
return NSUIntegerMax;
}
// 全局静态变量 可以实现对象之间共享 静态存储区
static NSString * phoneNum =nil;
- 完整版单例代码
- 单例完整版
- 创建单例(完整版)
- Java单例模式 完整版
- 单项链表(完整版)
- 论坛完整版ubb代码
- RGBYUV420代码完整版
- 日历代码的完整版
- java 计算器完整版,代码!
- IOS单例代码
- 单例代码
- 单例模式代码
- Java单例代码
- 单例模式 代码
- excel操作代码(C#完整版)
- Day19、树的完整版代码
- 单例模式通用代码
- c#单例模式代码
- 懒汉单例构造模式
- swift详解之二十六-----------CALayer 判断是否点击hitTest 和 contensRect
- HDU 1172 猜数字 深搜
- Objective-C之深拷贝与浅拷贝
- lintcode-带重复元素的排列 -16
- 完整版单例代码
- mysql group by 用法解析(详细)
- C++ Primer中Sales_item.h代码解析
- B树、B-树、B+树、B*树
- hdu 4707 Pet
- 海边
- 第一章 C#概论
- PHP基础语法实例
- SVN安装---本机安装---SVN 命令行(5)