詳解IOS 單例的兩種方式
更新時(shí)間:2017年09月18日 14:38:41 投稿:lqh
這篇文章主要介紹了詳解IOS 單例的兩種方式的相關(guān)資料,希望通過本文大家能夠理解掌握IOS 的兩種單例的使用方法,需要的朋友可以參考下
詳解IOS 單例的兩種方式
方法一:
#pragma mark - #pragma mark sharedSingleton methods //單例函數(shù) 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; } //單例函數(shù)結(jié)束
方法二:
.h文件
#import <Foundation/Foundation.h> @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
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
舉例講解iOS中延遲加載和上拉刷新/下拉加載的實(shí)現(xiàn)
這篇文章主要介紹了舉例講解iOS中延遲加載和上拉刷新/下拉加載的實(shí)現(xiàn),語言依然為傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-09-09IOS9.0 LaunchScreen.StroyBoard自定義啟動圖片詳解
這篇文章主要介紹了IOS9.0 LaunchScreen.StroyBoard自定義啟動圖片詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02

總結(jié)iOS開發(fā)中的斷點(diǎn)續(xù)傳與實(shí)踐
本文先從斷點(diǎn)續(xù)傳問題開始,介紹斷點(diǎn)續(xù)傳概述和原理。接著結(jié)合筆者調(diào)研中嘗試的 AFHTTPRequestOpeartion,簡單分析源碼。最后分別基于 NSURLConnection,NSURLSessionDataTask 和 NSURLSessionDownloadTask 去實(shí)現(xiàn)應(yīng)用重啟情況下的斷點(diǎn)續(xù)傳。下面一起來看看。
2016-07-07 
iOS實(shí)現(xiàn)視頻下載并自動保存到相冊功能
這篇文章主要為大家詳細(xì)介紹了ios 視頻下載功能實(shí)現(xiàn),并自動保存到相冊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
2020-02-02 
iOS應(yīng)用開發(fā)中使用NSLocale類實(shí)現(xiàn)對象信息的本地化
這篇文章主要介紹了iOS應(yīng)用開發(fā)中使用NSLocale類實(shí)現(xiàn)對象信息的本地化的方法,能夠?qū)r(shí)間和貨幣等格式化為與系統(tǒng)本地設(shè)置相同的偏好,需要的朋友可以參考下
2016-05-05