欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解IOS 單例的兩種方式

 更新時(shí)間:2017年09月18日 14:38:41   投稿:lqh  
這篇文章主要介紹了詳解IOS 單例的兩種方式的相關(guān)資料,希望通過(guò)本文大家能夠理解掌握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 


如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • swift3.0網(wǎng)絡(luò)圖片緩存原理簡(jiǎn)析

    swift3.0網(wǎng)絡(luò)圖片緩存原理簡(jiǎn)析

    這篇文章主要為大家簡(jiǎn)析了swift3.0網(wǎng)絡(luò)圖片緩存原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 總結(jié)iOS開(kāi)發(fā)中的斷點(diǎn)續(xù)傳與實(shí)踐

    總結(jié)iOS開(kāi)發(fā)中的斷點(diǎn)續(xù)傳與實(shí)踐

    本文先從斷點(diǎn)續(xù)傳問(wèn)題開(kāi)始,介紹斷點(diǎn)續(xù)傳概述和原理。接著結(jié)合筆者調(diào)研中嘗試的 AFHTTPRequestOpeartion,簡(jiǎn)單分析源碼。最后分別基于 NSURLConnection,NSURLSessionDataTask 和 NSURLSessionDownloadTask 去實(shí)現(xiàn)應(yīng)用重啟情況下的斷點(diǎn)續(xù)傳。下面一起來(lái)看看。
    2016-07-07
  • iOS實(shí)現(xiàn)視頻下載并自動(dòng)保存到相冊(cè)功能

    iOS實(shí)現(xiàn)視頻下載并自動(dòng)保存到相冊(cè)功能

    這篇文章主要為大家詳細(xì)介紹了ios 視頻下載功能實(shí)現(xiàn),并自動(dòng)保存到相冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • iOS應(yīng)用開(kāi)發(fā)中使用NSLocale類(lèi)實(shí)現(xiàn)對(duì)象信息的本地化

    iOS應(yīng)用開(kāi)發(fā)中使用NSLocale類(lèi)實(shí)現(xiàn)對(duì)象信息的本地化

    這篇文章主要介紹了iOS應(yīng)用開(kāi)發(fā)中使用NSLocale類(lèi)實(shí)現(xiàn)對(duì)象信息的本地化的方法,能夠?qū)r(shí)間和貨幣等格式化為與系統(tǒng)本地設(shè)置相同的偏好,需要的朋友可以參考下
    2016-05-05
  • iOS輸出手機(jī)系統(tǒng)版本號(hào)

    iOS輸出手機(jī)系統(tǒng)版本號(hào)

    這篇文章主要介紹了iOS輸出手機(jī)系統(tǒng)版本號(hào)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 最新評(píng)論