十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如下所示:
十载的海盐网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整海盐建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“海盐网站设计”,“海盐网站推广”以来,每个客户项目都认真落实执行。
//下面这段宏考过去直接用 #define SYNTHESIZE_SINGLETON_FOR_HEADER(className) \ \ + (className *)sharedInstance;\ + (void)destroyInstance; //在单例生成之前onceToken = 0,在单例生成之后onceToken = -1了,之后一直保持-1这个值,知道这个之后我想你应该有思路了 #define SYNTHESIZE_SINGLETON_FOR_CLASS(className) \ \ static className *shared##className = nil; \ static dispatch_once_t onceToken;\ + (className *)sharedInstance\ {\ return [[self alloc] init];\ }\ + (className *)allocWithZone:(struct _NSZone *)zone\ {\ dispatch_once(&onceToken, ^{\ shared##className = [super allocWithZone:zone];\ });\ return shared##className;\ }\ - (className *)copyWithZone:(NSZone *)zone\ {\ return shared##className;\ }\ - (className *)mutableCopyWithZone:(NSZone *)zone\ {\ return shared##className;\ }\ + (void)destroyInstance {\ shared##className = nil;\ onceToken = 0;\ }\
//用法,注意要遵循NSCopying,NSMutableCopying 协议 import@interface YNHTUserModel : NSObject SYNTHESIZE_SINGLETON_FOR_HEADER(YNHTUserModel); @property (nonatomic,copy) NSString* inviter_id;//邀请人ID @property (nonatomic,copy) NSString* token; @property (nonatomic,copy) NSString* nick_name; @end
#import "YNHTUserModel.h" @implementation YNHTUserModel SYNTHESIZE_SINGLETON_FOR_CLASS(YNHTUserModel); @end
以上这篇ios 单利的完整使用实例 及销毁 宏定义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持创新互联。