在项目中,我们需要全局只有一个实例,节省不必要的内存,这时我们就需要使用里单例生成对象。
这时把单例的代码封装成宏,就能方便我们下次使用了。
在.h .m里直接导入头文件,调用 传入类名即可!
singleton_interface(DataManager)
singleton_implementation(DataManager)
// .h#define singleton_interface(className) + (instancetype)shared##className;// .m// 最后一句不要斜线#define singleton_implementation(className) /static className *_instace; //+ (id)allocWithZone:(struct _NSZone *)zone /{ / static dispatch_once_t onceToken; / dispatch_once(&onceToken, ^{ / _instace = [super allocWithZone:zone]; / }); / / return _instace; /} //+ (instancetype)shared##className /{ / if (_instace == nil) { / _instace = [[className alloc] init]; / } / / return _instace; /}
作者: 清澈Saup
出处: http://www.VEVb.com/qingche/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
新闻热点
疑难解答