在項目中,我們需要全局只有一個實例,節省不必要的內存,這時我們就需要使用里單例生成對象。
這時把單例的代碼封裝成宏,就能方便我們下次使用了。
在.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://m.survivalescaperooms.com/qingche/
本文版權歸作者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
新聞熱點
疑難解答