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

使用宏定义创建单例

时间:2015-04-12 01:22:44      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

//单例

#ifndef KCSingleton_h
#define KCSingleton_h

#pragma mark 接口.h中的定义
//由于宏定义里有需要替换的内容所以定义一个变量className
//##用于分割、连接字符串
#define singleton_interface(className) +(className *)shared##className;

#pragma mark 实现.m
//\在代码中用于连接宏定义,以实现多行定义
#define singleton_implementation(className) static className *_instance;+(id)shared##className{    if(!_instance){        _instance=[[self alloc]init];    }    return _instance;}+(id)allocWithZone:(struct _NSZone *)zone{    static dispatch_once_t dispatchOnce;    dispatch_once(&dispatchOnce, ^{        _instance=[super allocWithZone:zone];    });    return _instance;}

#endif

 

使用宏定义创建单例

标签:

原文地址:http://www.cnblogs.com/hxwj/p/4418819.html

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