博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

object-c 单例模式(非线程安全)

Posted on 2013-03-20 13:00  酸梅拯救地球  阅读(245)  评论(0)    收藏  举报
 1 static MyGizmoClass *sharedGizmoManager = nil;
 2  
 3 + (MyGizmoClass*)sharedManager
 4 {
 5     if (sharedGizmoManager == nil) {
 6         sharedGizmoManager = [[super allocWithZone:NULL] init];
 7     }
 8     return sharedGizmoManager;
 9 }
10  
11 + (id)allocWithZone:(NSZone *)zone
12 {
13     return [[self sharedManager] retain];
14 }
15  
16 - (id)copyWithZone:(NSZone *)zone
17 {
18     return self;
19 }
20  
21 - (id)retain
22 {
23     return self;
24 }
25  
26 - (NSUInteger)retainCount
27 {
28     return NSUIntegerMax;  //denotes an object that cannot be released
29 }
30  
31 - (void)release
32 {
33     //do nothing
34 }
35  
36 - (id)autorelease
37 {
38     return self;
39 }