这篇文章主要介绍了IOS中如何实现单例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、雅安服务器托管、营销软件、网站建设、宁江网站维护、网站推广。详解IOS 单例的两种方式
方法一:
#pragma mark - #pragma mark sharedSingleton methods //单例函数 static RtDataModel *sharedSingletonManager = nil; + (RtDataModel *)sharedManager { @synchronized(self) { if (sharedSingletonManager == nil) { sharedSingletonManager = [[self alloc] init]; } } return sharedSingletonManager; } + (id)allocWithZone:(NSZone *)zone { @synchronized(self) { if (sharedSingletonManager == nil) { sharedSingletonManager = [super allocWithZone:zone]; return sharedSingletonManager; // assignment and return on first allocation } } return nil; //on subsequent allocation attempts return nil } - (id)copyWithZone:(NSZone *)zone { return sharedSingletonManager; } - (id)retain { return sharedSingletonManager; } - (NSUInteger)retainCount { return UINT_MAX; //denotes an object that cannot be released } - (oneway void)release { //do nothing } - (id)autorelease { return sharedSingletonManager; } //单例函数结束
方法二:
.h文件
#import@interface RtTestDataModel : NSObject { NSMutableArray * _buyDataTArray; NSMutableArray * _sellDataTArray; } + (RtTestDataModel *)sharedManager; - (void)addOptionBuyDataArrayModel: (NSMutableArray *)DataArray; - (NSMutableArray *)getOptionBuyDataArrayModel; @end
.m文件
#import "RtTestDataModel.h" @implementation RtTestDataModel + (RtTestDataModel *)sharedManager { static RtTestDataModel *sharedManager = nil; static dispatch_once_t predicate; dispatch_once(&predicate,^{ sharedManager = [[RtTestDataModel alloc]init]; }); return sharedManager; } - (void)dealloc { [_buyDataTArray removeAllObjects]; [_buyDataTArray release]; [super dealloc]; } - (id)init { self = [super init]; if (self != nil) { _buyDataTArray = [[NSMutableArray alloc] initWithCapacity:8]; } return self; } - (void)addOptionBuyDataArrayModel: (NSMutableArray *)DataArray{ if (DataArray != nil) { [_buyDataTArray removeAllObjects]; [_buyDataTArray addObjectsFromArray:DataArray]; } } - (NSMutableArray *)getOptionBuyDataArrayModel{ return _buyDataTArray; } @end
感谢你能够认真阅读完这篇文章,希望小编分享的“IOS中如何实现单例”这篇文章对大家有帮助,同时也希望大家多多支持创新互联建站,关注创新互联网站建设公司行业资讯频道,更多相关知识等着你来学习!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。