iOS开发 - 创建一个单例类

关于单例的概念此处不做表述,直接上代码演示如何创建一个单例类。

 1 #import <Foundation/Foundation.h>
 2 
 3 @interface MJDemo : NSObject
 4 
 5 + (instancetype)sharedDemo;
 6 
 7 @end
 8 
 9 
10 #import "MJDemo.h"
11 
12 @implementation MJDemo
13 
14 //在iOS中所有对象分配内存空间,最终都会调用allocWithZone:方法,如果要做单例需要提供此方法
15 + (instancetype)allocWithZone:(struct _NSZone *)zone{
16     static MJDemo *instance;
17     static dispatch_once_t onceToken;
18     dispatch_once(&onceToken, ^{
19         //该代码只被执行一次
20         instance = [super allocWithZone:zone];
21     });
22     
23     return instance;
24 }
25 
26 + (instancetype)sharedDemo{
27     return [[self alloc] init];
28 }
29 
30 @end

 

posted @ 2015-12-29 00:41  mooney_wang  阅读(217)  评论(0)    收藏  举报