IOS 标准单例

在ARC模式下 单例
主要重写 两个方法

  • (instancetype)allocWithZone:(struct _NSZone *)zone
  • (id)copyWithZone:(NSZone *)zone
    示例代码
    @implementation Person
    static id instance;

//重写allocWithZone分配内存的方法,保证该方法永远只会被执行一次
+(instancetype)allocWithZone:(struct _NSZone *)zone {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [super allocWithZone:zone];
});
return instance;
}

//自定义单列方法
+(instancetype)sharedPerson {

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    instance = [Person new];
});
return instance;

}

//重写copyWithZone函数
-(id)copyWithZone:(NSZone *)zone {
return instance;
}


二 MRC下面还需要多加下面的几个方法

-(oneway void)release {}

-(instancetype)retain{
return instance;
}

-(NSUInteger)retainCount{
return 1;
}
-(instancetype)autorelease {
return instance;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发—单例模式 一、简单说明: 设计模式:多年软件开发,总结出来的一套经验、方法和工具 二、单例模式说明 (...
    牛仔裤小毛驴阅读 3,870评论 0 0
  • 单例模式的作用:可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并...
    BEYOND黄阅读 2,224评论 0 3
  • 任职前端工程师三年,现负责着项目组的前端工作和团队管理,最近因为一些因素有点浮躁,有点沉不住气。 我想,越是生活紧...
    黑云之城阅读 3,649评论 1 4
  • 今天是音乐听多了嘛?整个人都有点小清新起来了了呢,怎么说呢,这是日记嘛?我也不知道啊,日记该写些什么呢?我也不知道...
    sunny233阅读 2,860评论 0 1
  • Stanford Report, June 14, 2005 ‘You’ve got to find what y...
    keisme阅读 10,512评论 0 10