码迷,mamicode.com
首页 > 其他好文 > 详细

OC中的SingleTon

时间:2016-07-10 12:36:11      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

OC中的单例模式 比较Java中单例模式

需要重写 allocWithZone  确保使用的是同一块地址

重写copyWithZone 确定复制之后是同一个地址

 1 //
 2 //  SingleTon.m
 3 //  OCLearn8
 4 //
 5 //  Created by lyp on 16/7/10.
 6 //  Copyright © 2016年 awebing. All rights reserved.
 7 //
 8 
 9 #import "SingleTon.h"
10 static SingleTon *instance = nil;
11 
12 @interface SingleTon()
13 -(instancetype)init;
14 @end
15 
16 
17 @implementation SingleTon
18 
19 +(SingleTon*)getInstance {
20     if(instance == nil) {
21         instance = [[SingleTon alloc]init];
22     }
23     instance->_price = 100;
24     return instance;
25 }
26 
27 -(instancetype)init{
28     return self;
29 }
30 
31 
32 // 覆盖allocWithZone方法  确保使用的是同一块地址
33 +(id)allocWithZone:(struct _NSZone *)zone{
34     @synchronized (self) {
35         if(!instance) {
36             instance = [super allocWithZone:zone];
37             return instance;
38         }
39     }
40     return nil;
41 }
42 
43 -(id)copyWithZone:(NSZone *)zone; {
44     return self;
45 }
46 
47 @end

 

 

OC中的SingleTon

标签:

原文地址:http://www.cnblogs.com/awebing/p/5657368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!